Построение горизонтальных и вертикальных линий в Mathematica - PullRequest
22 голосов
/ 24 мая 2010

В Mathematica, как вы наносите горизонтальную линию на заданное число?Как вы строите вертикальную линию под заданным числом?

Ответы [ 5 ]

28 голосов
/ 24 мая 2010

Если вы на самом деле используете 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 :

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

one line

16 голосов
/ 25 мая 2010

Для случая горизонтальных линий при использовании Plot самый простой способ - просто включить дополнительные постоянные функции:

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

Для вертикальных линий есть опция Epilog для Plot и ListPlot:

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

enter image description here

Но, вероятно, лучший вариант - это вариант GridLines, указанный в ответе Пилси.

10 голосов
/ 24 мая 2010

Один из подходов заключается в добавлении 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 голосов
/ 10 августа 2012

Используйте команду 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 будет ожидать расположения горизонтальных линий сетки.

0 голосов
/ 18 октября 2016

Альтернативой является думать о вертикальной линии как о прямой линии бесконечного наклона. Таким образом, для вертикальной линии в точке x = 2 * pi мы можем сделать что-то вроде этого:

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

нажмите, чтобы увидеть изображение

Обратите внимание, что член 10 ^ 10 имитирует бесконечный наклон. Если вы не используете опцию PlotRange -> {-1, 1}, «доминантной» функцией является прямая линия, поэтому функция Sin [x] фактически отображается в виде горизонтальной линии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...