Использование markevery kwarg с axhline

#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 точки используются для рисования линии на границах.