3

Mathematicaでのプロットのラベル付けについて質問があります。私の問題を説明します。

私はこのような機能を持っています。

y = 4 x / L + 2

y 対 x のグラフを描きたい。また、私は持っています

L={10,20,30,40}

以下のようなコードを書くと、

Plot[y, {x, 0, 100}, 
    ImageSize -> Scaled[1.0], PlotLabel ->  Style["y vs X ", FontSize -> 18]]

同じグラフに 4 つの異なるプロットがあります。各プロットに関連する L 値でラベルを付ける方法を知りたいです。

4

2 に答える 2

4

私の以前の投稿hereに基づいて、この方法を使用して好きなように行にラベルを付けることができます。ラベル付け後、動的コンテンツのないプロットは に設定されていることがわかりますplainplot

各行を自己ラベル付けボタンに変えることで機能します。labelsさまざまなラベルに合わせて変更できます。

l = {10, 20, 30, 40};
y[x_, s_] := 4 x/s + 2

plot = Plot[Evaluate@Table[y[x, u], {u, l}], {x, 0, 100},
   PlotLabel -> Style["y vs X ", FontSize -> 18]];

pos = Position[plot, _Line];
Array[(line[#] = plot[[Sequence @@ pos[[#]]]]) &, Length@l];
AddLabel[label_] := Module[{},
  AppendTo[plot[[1]], Inset[Framed[label, Background -> White], pt]];
  (* Removing buttons for final plot *)
  plainplot = plot;
  Array[
   (plainplot[[Sequence @@ pos[[#]]]] =
      plainplot[[Sequence @@ Append[pos[[#]], 1]]]) &, Length@l]]
labels = ToString /@ l;
Array[
  (plot[[Sequence @@ pos[[#]]]] =
     Button[line[#], AddLabel[labels[[#]]]]) &, Length@l];
Dynamic[EventHandler[plot,
  "MouseDown" :> (pt = MousePosition["Graphics"])]]

ここに画像の説明を入力

于 2012-09-14T19:11:43.710 に答える
3
l = {10, 20, 30, 40}
y[x_, s_] := 4 x/s + 2
<< PlotLegends`

Plot[Evaluate@Table[y[x, u], {u, l}], {x, 0, 100}, 
 ImageSize -> Scaled[1.0], 
 PlotLabel -> Style["y vs X ", FontSize -> 18], 
 PlotLegend -> ("L = " <> ToString@# & /@ l)]

Mathematica グラフィックス

于 2012-09-14T14:57:34.340 に答える