Mathematicaで関数をプロットすると、その方程式(つまり、y = 2x)または他のテキストが自動的にその近くに配置される可能性はありますか?
一見、選択肢はありませんが、もしあれば知りたいです。
ありがとう
Mathematicaで関数をプロットすると、その方程式(つまり、y = 2x)または他のテキストが自動的にその近くに配置される可能性はありますか?
一見、選択肢はありませんが、もしあれば知りたいです。
ありがとう
これを行う1つの方法は、式をプロットに使用されるスタイルに自動的に関連付けることで、PlotLegends
標準のアドオンパッケージを使用することです。デフォルトでは、出力はあまり良く見えません。LegendShadow -> None
オプションを設定Style
し、凡例に貼り付けた式を使用して見栄えを良くすることをお勧めします。また、パッケージをロードすると、いくつかの面白い再定義Plot
と関連する関数が適用され、注意しないと他のことが壊れてしまう可能性があります。
Mathematica 6以降を使用して、私はしばしばツールチップを使用してプロット曲線を識別します。
Plot[Tooltip[Sin[x]], {x, 0, 8 Pi}]
残念ながら、これはグラフをインタラクティブに使用する場合にのみ役立ちます。これは、マウスカーソルを曲線の上に置く必要があるためです。紙や静止画像ではうまく機能しません。
次の例のように、エピローグオプションを使用して、プロットにテキストを手動で配置できます。
Plot[
Sin[x], {x, 0, 8 Pi},
Epilog -> Text["My Text", Offset[{32, 0}, {14, Sin[14]}]]
]
好みに合わせてオフセットの引数を微調整します。
これは、手動での配置を気にしない場合に機能します。プロットする関数の種類によっては、自動配置にはいくつかの課題があります。ただし、対象の関数の一般的な特性を知っている場合は、 Offset引数の見栄えの良い値を計算する関数を作成できます。たとえば、指数関数的減衰関数をたくさんプロットすることがわかっている場合は、次の例で関数myPlotのようなものを定義できます。
SetAttributes[myPlot, HoldAll]
myPlot[function_, {var_, min_, max_}] :=
Plot[
function, {var, min, max},
Epilog -> Text[function, Offset[{40, 0}, {var, function} /. var -> min + (max - min)/20]],
PlotRange -> All, AxesOrigin -> {0, 0}
]
...ここで、オフセットへの引数は、これらの種類のプロットに適度に機能するいくつかの任意の定数を使用して自動的に計算されます。
Manipulate[
myPlot[1000 E^(-d t), {t, 0, 100}, "My Label"],
{d, 0.01, .2}
]
これらのオプションはすべてプログラム可能であるため、ラベルの配置のためにどれだけ洗練されたものをコーディングできるかについては、空の限界があります。もちろん、そのようなプログラミングは、関数の横にあるテキストを魔法のようにドロップするPlotの組み込みオプションの理想からますます遠ざかっています。Mathematica8または9多分:)
「その方程式に近い」が問題です。これは簡単に解決できる問題ではなく、プロットが重なっているなどの「ビジー」なグラフを取得し始めると、やや不可能になります。
示す良い例はありませんが、通常は、プロットされている関数と同じ入力を受け取る「ラベル付け関数」を定義します。これは、グラフにドットを配置し、近くにテキストを書き込みます。これには、テキストの場所を簡単に変更できるという利点がありますが、それでも関数に関連付けられています。