Можно ли контролировать пошаговую метку xlabel на участке? - PullRequest
0 голосов
/ 27 декабря 2018

Я полагаю, что это старый вопрос о сюжете.Однако я не смог найти ответ.

Вопрос:
Можно ли разрешить моему subplot идентично шагать по x-label?

y_label = 'db_server_6a_2018_df_IL1-A'

f, ax_list = plt.subplots(12, 1, gridspec_kw = {
    'height_ratios': [20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20],
    'width_ratios': [30]
}, figsize=(20, 40))
for month in range(1, 12 + 1):
    start_dt = datetime.datetime(2018, month, 1)
    end_dt = start_dt + relativedelta(months=1)
    window_df = df[(start_dt < df['Time']) & (df['Time'] <= end_dt)]

    ax = ax_list[month-1]
    ax.plot(window_df['Time'], window_df[y_label])
    ax.set_ylabel(start_dt.strftime('%B'))
    ax.set_xlabel('datetime')
f.savefig(y_label + '.png')

Вот вывод timestep in x axis does not start from first date

Ответы [ 2 ]

0 голосов
/ 30 декабря 2018

Спасибо за ответ @ElidorDD.Я просто знал правильную формулировку от него.Вот ответ на мой вопрос, который унаследован от matplotlib.axes.Axes класса, а не matplotlib.pyplot

ax.xaxis.grid(True)
ax.xaxis_date()
ax.set_xticks([datetime.datetime(2018, month,1), 
               datetime.datetime(2018, month, 7),
               datetime.datetime(2018, month, 14),
              datetime.datetime(2018, month, 21),
              datetime.datetime(2018, month, 28)])
monthyearFmt = mdates.DateFormatter('%Y-%m-%d')
ax.xaxis.set_major_formatter(monthyearFmt)

Same tick for all months, but keep picture short just 3 months

0 голосов
/ 28 декабря 2018

Вы уже пытались установить xticks () и xlim (), а именно, соответственно, чтобы установить новый список местоположений, в которые должны быть помещены галочки, и установить кортеж новых пределов оси x для каждого из вспомогательных участков?

документация xticks

документация xlim

Они также должны хорошо работать с вспомогательными участками.

ДругойРешением может быть использование:

plt.subplot(something, sharex=ax, sharey=ax)

где, как написано в документации

sharex, sharey : Axes, optional
Share the x or y axis with sharex and/or sharey. 
The axis will have the same limits, ticks, and scale as the axis of the shared axes.

PS Я не могу написать комментарий, потому что мне не хватает репутации.

...