在Mathematica中,如何在给定数字处绘制水平线?如何在给定数字处绘制垂直线?
答案 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}}]
编辑添加:
当然,如果你只想在一个给定的数字上画一条线,这个解决方案就有效。例如,如果要重现dreeve's answer中的第二个示例:
Plot[Sin[x], {x, 0, 2 Pi},
GridLines -> {{4}, {}}]
答案 1 :(得分:16)
对于使用Plot
时水平线的情况,最简单的技巧是只包含其他常量函数:
Plot[{Sin[x], .75}, {x, 0, 2Pi}]
对于垂直线,Epilog
和Plot
有ListPlot
选项:
Plot[Sin[x], {x, 0, 2Pi}, Epilog->Line[{{4,-100}, {4,100}}]]
但最好的是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]
另一种方法是摆弄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}]
注意术语10 ^ 10模仿无限斜率。如果您不使用选项PlotRange - > {-1,1},"显性"函数是直线,因此Sin [x]函数确实有效地显示为水平线。