Сетка matplotlib случайно пропускает среднее значение - PullRequest
0 голосов
/ 08 апреля 2020

Я работаю над настройкой сюжета. У меня есть график, построенный из кадра данных с именем res, индексом является индекс даты и времени, и я попытался добавить сетку.

labels = res.index
mWh = res['mWh']
mWh_predicted = res['mWh Predicted']

x = np.arange(len(labels))
width = 0.35

fig, ax = plt.subplots(figsize=(30,15))
ax.grid(True)
ax.yaxis.set_major_formatter(mpl.ticker.FuncFormatter(lambda x, pos: str(int(round(x)))))

rects1 = ax.bar(x - width/2, mWh, width, label='mWh')
rects2 = ax.bar(x + width/2, mWh_predicted, width, label='mWh Predicted')

ax.set_ylabel('mWh')
ax.set_title('mWh Generated vs. Regression Predicted mWh')
ax.set_xticks(x)
ax.set_xticklabels(labels, rotation=45)
ax.legend()

plt.show()

По какой-то причине добавление сетки случайным образом пропускает среднее значение.

enter image description here

Мне также интересно, как настроить yticks, когда данные поступают из кадра данных. Я попытался установить диапазон, но не повезло. В идеале я хотел бы, чтобы тики увеличивались / уменьшались на 100000, с небольшими тиками (без меток) с интервалами в 50000.

1 Ответ

1 голос
/ 08 апреля 2020

Для вопроса о yticks.

step = 100000
minor_start = 50000
yticks_major = np.arange(0, 11 * step, step)
yticks_minor = np.arange(minor_start, 10 * step + minor_start, step)
ax.set_yticks(yticks_major, minor=False)
ax.set_yticks(yticks_minor, minor=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...