#python #python-2.7 #matplotlib
#python #python-2.7 #matplotlib
Вопрос:
Я пытался построить вертикальную линию с маркерами на ней, используя ax.axvline
, но маркеры отображаются только в нижней и верхней части рисунка. Я поиграл с markevery
kwarg, но, похоже, он не оказывает никакого эффекта, когда я его меняю, хотя он работает для обычного линейного графика. Кто-нибудь знает, связано ли это с тем, что вдоль оси не указаны дискретные значения или я просто делаю что-то не так?
Я понимаю, что могу самостоятельно построить вертикальную линию и указать маркеры, но я полагаю, что, учитывая цель axvline
, я должен ее использовать.
Вот пример кода того, о чем я говорю:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-10,10)
y = x**2-15.
fig = plt.figure(figsize=(4,4))
ax = plt.subplot(111)
ax.plot(y,x) #Test curve
ax.plot(2 np.zeros(len(x)),x,marker='X',markevery=1) #another way to plot what I want.
ax.axvline(0,c='r',marker='X',markevery=1) #markerevery doesn't seem to work
plt.show()
Комментарии:
1. Axvline состоит только из двух точек, начала и конца. Таким образом, вы не можете отметить какие-либо точки, которых там нет.
2. Это то, что я подозревал, спасибо за подтверждение.
Ответ №1:
Как упоминалось ImportanceOfBeingErnest, markerevery
kwarg не применяется для axvline
or axhline
, потому что технически только 2 точки используются для рисования линии на границах.