在Mathematica中绘制水平和垂直线

时间:2010-05-24 13:26:44

标签: wolfram-mathematica

在Mathematica中,如何在给定数字处绘制水平线?如何在给定数字处绘制垂直线?

5 个答案:

答案 0 :(得分:28)

如果您实际使用Plot(或ListPlot等),最简单的解决方案是使用GridLines选项,该选项可让您指定 x - 和 y - 您想要绘制线条的值。例如:

Plot[Sin[x], {x, 0, 2 \[Pi]},
  GridLines -> {{0, \[Pi]/2, \[Pi], 3 \[Pi]/2, 2 \[Pi]},
                {-1, -Sqrt[3]/2, -1/2, 0, 1/2, Sqrt[3]/2, 1}}]

many lines

编辑添加:

当然,如果你只想在一个给定的数字上画一条线,这个解决方案就有效。例如,如果要重现dreeve's answer中的第二个示例:

Plot[Sin[x], {x, 0, 2 Pi},
 GridLines -> {{4}, {}}]

one line

答案 1 :(得分:16)

对于使用Plot时水平线的情况,最简单的技巧是只包含其他常量函数:

Plot[{Sin[x], .75}, {x, 0, 2Pi}]

对于垂直线,EpilogPlotListPlot选项:

Plot[Sin[x], {x, 0, 2Pi}, Epilog->Line[{{4,-100}, {4,100}}]]

enter image description here

但最好的是Pillsy答案中给出的GridLines选项。

答案 2 :(得分:10)

一种方法是将Line图形基元添加到图形中:

p1 = Plot[Sin[x], {x, -2*Pi,2*Pi}];
l1 = Graphics@Line[{{-2Pi,.75},{2Pi,.75}}]; (* horizontal line at y==.75 *)
Show[p1,l1]

enter image description here

另一种方法是摆弄GridLines

答案 3 :(得分:3)

使用Gridlines命令,如下所示:

Plot[
  1/(15*E^((x - 100)^2/450)*Sqrt[2*Pi]),
  {x, 55, 145},
  GridLines -> {{85, 115}, {}}
]

翻译 在上面的代码中,我绘制了一条正态曲线:

1/(15*E^((x - 100)^2/450)*Sqrt[2*Pi]) 

然后告诉图表我希望它显示的x轴的哪个部分:

{x, 55, 145}

然后我在85和115处添加我想要的垂直网格线。

GridLines -> {{85, 115}, {}}

请注意,您需要提供Gridlines期望水平网格线位置的空白{}。

答案 4 :(得分:0)

另一种方法是将垂直线视为无限斜率的直线。因此,对于位于x = 2 * pi的垂直线,我们可以这样做:

Plot[{Sin[x], 10^10 (x - 2 \[Pi])}, {x, 0, 10}, PlotRange -> {-1, 1}]

click to see the image

注意术语10 ^ 10模仿无限斜率。如果您不使用选项PlotRange - > {-1,1},"显性"函数是直线,因此Sin [x]函数确实有效地显示为水平线。