3

Mathematicaの出力密度プロットにグリッド線を追加しようとしています。プロットはMathematicaでの長い計算によって生成され、プロットを行うときにMesh->Trueオプションを追加するのを忘れています。時間がかかるので、すべての計算をしてプロットを再生成したくありません。手元の出力プロットのみを使用して、グリッド線またはメッシュ線をプロットに追加することは可能ですか?

たとえば、プロットpがある場合。pを操作するだけでメッシュラインを追加することは可能ですか?

通常の1次元プロットでは、これは機能します

p1 = Plot[Sin[x], {x, -3, 3}];

Insert[p1, GridLines -> Automatic, -1]

ここに画像の説明を入力してください

しかし、密度プロットを試してみると、グリッド線は常にプロットの下にあり、画像の余白領域でしか見ることができないようです。

p2 = DensityPlot[Sin[x + y^2], {x, -3, 3}, {y, -2, 2}, PlotRangePadding -> 0.2];
Insert[p2, GridLines -> Automatic, -1]

ここに画像の説明を入力してください

アップデータ

メッシュはグラフィックスのオプションではないため、出力プロットのメッシュオプションは機能しません。

Show[p2,Mesh->True]

「グラフィックのレンダリング中に認識されないオプション名(メッシュ)が見つかりました」というメッセージが表示されます。ありがとうございます。

4

2 に答える 2

2

これを行う最良の方法は、次の"GridLinesInFront"メソッドオプションを使用することですGraphics

DensityPlot[Sin[x + y^2], {x, -3, 3}, {y, -2, 2}, 
 PlotRangePadding -> 0.2, GridLines -> Automatic, 
 Method -> {"GridLinesInFront" -> True}]

ここに画像の説明を入力してください

于 2016-11-01T17:56:45.107 に答える
1

OK、これは恐ろしいハックですが、(少なくとも時々)機能します。アイデアは、計算が簡単であるが、それ以外はp2に似ている密度プロットでメッシュを作成してから、メッシュを抽出することです。

Show[p2, Graphics[Cases[DensityPlot[0, {x, -3, 3}, {y, -2, 2}, 
      Evaluate[Sequence @@ Append[Options[p2], Mesh -> True]]][[1]] //
     Normal, _Line, \[Infinity]]]]
于 2012-11-21T05:22:11.147 に答える