将网格线添加到Mathematica中的输出图

时间:2012-11-16 17:18:48

标签: plot wolfram-mathematica

我正在尝试将网格线添加到Mathematica中的输出密度图。该图是通过Mathematica中的长计算生成的,当我执行该图时,我忘记添加Mesh-> True选项。我不想做所有的计算并再次生成图,因为它需要很长时间。是否可以使用手头的输出图添加网格线或网格线来进行绘图?

例如,如果我有一个情节p。是否可以添加网格线仅操纵p?

在普通的一维图中,这将起作用

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

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

enter image description here

但是当我尝试密度图时,看起来网格线总是在图下,并且只能在图像边缘区域看到。

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

enter image description here

Updata公司

输出图上的Mesh选项不起作用,因为Mesh不是Graphics的选项:

Show[p2,Mesh->True]

会给出一条消息“渲染图形时遇到了一个未记录的选项名称(Mesh)” 感谢。

2 个答案:

答案 0 :(得分:2)

执行此操作的最佳方法是通过"GridLinesInFront"的{​​{1}}方法选项:

Graphics

enter image description here

答案 1 :(得分:1)

好吧,这是一个可怕的黑客但它确实有效(至少有时候)。我们的想法是在密度图中创建一个易于计算的网格,但在其他方面类似于你的p2,然后提取出网格。

Show[p2, Graphics[Cases[DensityPlot[0, {x, -3, 3}, {y, -2, 2}, 
      Evaluate[Sequence @@ Append[Options[p2], Mesh -> True]]][[1]] //
     Normal, _Line, \[Infinity]]]]