これらの各行に個別にラベルを付けるにはどうすればよいですか?
Plot[{{5 + 2 x}, {6 + x}}, {x, 0, 10}]
an answer から ListPlotsで複数のデータセットに注釈を付ける方法 でこれを動的に行うことができるいくつかの素敵なコードがあります。
テクニカルノートで定義されているLabelPlot
コマンドもあります プロットの曲線のラベル付け
もちろん、作成する画像が多すぎない場合は、 Epilog
を使用して手動でラベルを追加することは難しくありません。たとえば、
fns[x_] := {5 + 2 x, 6 + x};
len := Length[fns[x]];
Plot[Evaluate[fns[x]], {x, 0, 10},
Epilog -> Table[Inset[
Framed[DisplayForm[fns[x][[i]]], RoundingRadius -> 5],
{5, fns[5][[i]]}, Background -> White], {i, len}]]
実際、Locators
でも同様のことができ、ラベルを好きな場所に移動できます。
DynamicModule[{pos = Table[{1, fns[1][[i]]}, {i, len}]},
LocatorPane[Dynamic[pos], Plot[Evaluate[fns[x]], {x, 0, 10}],
Appearance -> Table[Framed[Text@TraditionalForm[fns[x][[i]]],
RoundingRadius -> 5, Background -> White], {i, len}]]]
上記ではEpilog
を上記のように保持し、位置を制御する非表示のロケーターを使用することもできますが、上記ではロケーターをラベルの形式にしました。ロケーターは、適切な曲線に(Dynamic
の2番目の引数を使用して)制限することもできますが、それは必ずしも必要ではありません。
ラベルを手動で移動した関数を含む上記のコードの例として:
fns[x_] := {Log[x], Exp[x], Sin[x], Cos[x]};
Mathematica 9は今や凡例を含めるための簡単な方法を提供します。
Plot[{{5 + 2 x}, {6 + x}}, {x, 0, 10}, PlotLegends -> "Expressions"]
PlotLegends
パッケージをロードして、プロットに凡例を挿入できます
<<PlotLegends`;
Plot[{5+2 x,6+x},{x,0,10},
PlotLegend->{"5+2x","6+x"},LegendShadow->None,
LegendPosition->{0.3,-0.5},LegendSpacing->-0,LegendSize->0.5]
ただし、このパッケージが嫌いであることにも注意してください。これは、主に直感的に理解できず、オプションが多すぎて、Mathematicaのほとんどの機能のように箱から出してすぐにクリーンなエクスペリエンスを提供できないためです。必要なものを取得するためのオプションをいじくりまわすことになります。ただし、凡例が必要なプロットやチャートでは、これは便利です。 this answer および this question へのコメントも参照してください。