Получение вертикальных линий сетки для отображения в линейном графике в 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 ответа:
возможно, Вам потребуется дать логический arg в ваших вызовах, например, использовать
ax.yaxis.grid(True)
вместоax.yaxis.grid()
. Кроме того, поскольку вы используете оба из них вы можете объединить вax.grid
, который работает на обоих, а не делать это один раз для каждого измерения.ax = plt.gca() ax.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 среди многих дней.