Переименовать ось субплота, где один из субплотов пересчитывается по неделям? - PullRequest
1 голос
/ 04 апреля 2020

У меня есть несколько целей:

  1. Создание подплота A, который повторяет выборку и суммирует Col1 в виде гистограммы на неделя .
  2. Создание подплота B, который показывает Col2 как линейный график (по дням). 1 столбец, 2 строки.
  3. Перемаркируйте ось 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'))

Я ценю любую помощь, которую вы можете предложить !

...