Получение вертикальных линий сетки для отображения в линейном графике в matplotlib


Я хочу получить как горизонтальные, так и вертикальные линии сетки на моем участке, но по умолчанию появляются только горизонтальные линии сетки. Я использую pandas.DataFrame из sql-запроса в python для создания линейного графика с датами на оси x. Я не уверен, почему они не появляются на датах, и я попытался найти ответ на этот вопрос, но не смог его найти.

все я использовал для построения графика-это простой код ниже.

data.plot()
grid('on')

data-это фрейм данных, который содержит даты и данные из SQL-запроса.

Я также попробовал добавить код ниже, но я все еще получаю тот же результат без вертикальных линий сетки.

ax = plt.axes()        
ax.yaxis.grid() # horizontal lines
ax.xaxis.grid() # vertical lines

какие предложения?

4 58

4 ответа:

возможно, Вам потребуется дать логический arg в ваших вызовах, например, использовать ax.yaxis.grid(True) вместо ax.yaxis.grid(). Кроме того, поскольку вы используете оба из них вы можете объединить в ax.grid, который работает на обоих, а не делать это один раз для каждого измерения.

ax = plt.gca()
ax.grid(True)

что нужно тебе.

plt.gca().xaxis.grid(True) оказалось решение для меня

согласно документации matplotlib подпись Axes класс grid() метод заключается в следующем:

топоры.сетка (b=None, которая= 'major', axis= 'both', * * kwargs)
Включите или выключите сетки осей.

which может быть ' major '(по умолчанию), 'minor’, или 'оба', чтобы контролировать ли основные тиковые сетки, второстепенные тиковые сетки или обе затронуты.

axis может быть ' оба '(по умолчанию), 'x', или ' y ' для управления которым набор из линий сетки.

таким образом, чтобы показать линии сетки для оси x и оси y, мы можем использовать следующий код:

ax = plt.gca()
ax.grid(which='major', axis='both', linestyle='--')

этот метод дает нам более точный контроль над тем, что показывать для линий сетки.

может быть, это может решить проблему: matplotlib, определите размер сетки на участке

ax.grid(True, which='both')

правда в том, что сетка работает, но есть только одна v-сетка в 00:00 и нет сетки в других. Я сталкиваюсь с той же проблемой, что есть только одна сетка в ноябре 1 среди многих дней.