У меня есть несколько целей:
- Создание подплота A, который повторяет выборку и суммирует Col1 в виде гистограммы на неделя .
- Создание подплота B, который показывает Col2 как линейный график (по дням). 1 столбец, 2 строки.
- Перемаркируйте ось x для подплота A так, чтобы он отображал '12 / 31 / 18-1 / 6/19 ',' 1/7 / 19-1 / 13/19 ', et c (вместо' 2019-01-06 00:00:00 ',' 2019-01-13 00:00:00 ', то есть последний день каждой недели и в запутанном формате, который по умолчанию)
Пример набора данных:
data = {'Date':['12/31/2018','1/1/2019','1/2/2019','1/3/2019','1/4/2019','1/5/2019','1/6/2019','1/7/2019','1/8/2019','1/9/2019','1/10/2019','1/11/2019','1/12/2019','1/13/2019','1/14/2019','1/15/2019','1/16/2019','1/17/2019','1/18/2019','1/19/2019','1/20/2019'],
'Col1':['80', '97','68','5','18','17','67','45','29','27','22','60','38','50','100','10','30','4','87','47','42'],
'Col2':['5','2.9','1.3','5.5','5.3','4.5','4.8','0.3','9.5','3.8','5.9','0.8','3.2','8','2.2','6.8','10','9.1','7.2','9.8','7.1']}
df = pd.DataFrame(data, columns = ['Date', 'Col1', 'Col2'])
df[['Col1', 'Col2']] = df[['Col1', 'Col2']].astype(float)
df['Date'] = pd.to_datetime(df.Date)
df.set_index('Date',inplace=True)
Попытка 1: Я получаю свои вспомогательные участки, но подсказки для Подзаговора A отображаются как '2019-01 -06 00:00:00 'вместо того, на что я надеюсь: '12 / 31 / 18-1 / 6/19':
plt.subplot(2,1,1)
df.Col1.resample('W').sum().plot(kind='bar')
plt.xticks(rotation=5)
plt.subplot(2,1,2)
df.Col2.plot()
plt.show()
Попытка 2: I Я могу исправить xticks для Subplot A (по крайней мере, в некоторой степени), но потом не знаю, как добавить второй subplot для Subplot B.
y = df.Col1.resample('W').sum()
fig, ax = plt.subplots(figsize=(13,4))
y.plot(ax=ax,kind='bar',fontsize=13)
ax.xaxis.set_ticklabels(y.index.to_period('W'))
Я ценю любую помощь, которую вы можете предложить !