Как управлять участками в Pandas? - PullRequest
0 голосов
/ 07 мая 2018

Мой DataFrame:

df = pd.DataFrame({'A': range(0,-10,-1), 'B': range(10,20), 'C': range(10,30,2)})

и график:

df[['A','B','C']].plot(subplots=True, sharex=True)

Я получаю один столбец с 3 субплотами, каждая четная высота.

Как построить еготаким образом, у меня есть только два вспомогательных участка, где «A» находится в верхнем, а «B» и «C» находятся в нижнем и высота нижнего графика отличается от высоты графика «A» (ось хобщий)

Ответы [ 3 ]

0 голосов
/ 07 мая 2018

Для ясности выложу свой модифицированный код здесь:

f, ax = plt.subplots(2,1, sharex=True, gridspec_kw={'height_ratios':[1,3]})
f.subplots_adjust(hspace=0)
df[['A','B','C']].plot(subplots=True, ax=[ax[0],ax[1],ax[1]])

Это сделает это. Спасибо.

enter image description here

0 голосов
/ 07 мая 2018

Я смог сделать это с .subplot2grid () . Который только создает 3 участка по мере необходимости.

ax1 = plt.subplot2grid((3, 2), (0, 0), colspan=1)
ax2 = plt.subplot2grid((3, 2), (0, 1), colspan=1)
ax3 = plt.subplot2grid((3, 2), (1, 0), rowspan=2, sharex=ax1)
plt.setp(ax1.get_xticklabels(), visible=False)

ax1.plot(df['A'])
ax2.plot(df['B'], color='darkorange')
ax3.plot(df['C'], color='green')

Выход:

enter image description here

0 голосов
/ 07 мая 2018

Используйте subplots с gridspec_kw parmater для настройки вашей сетки, затем используйте параметр ax на графике панд, чтобы использовать те оси, которые определены в операторе subplots:

f, ax = plt.subplots(2,2, gridspec_kw={'height_ratios':[1,2]})
df[['A','B','C']].plot(subplots=True, sharex=True, ax=[ax[0,0],ax[0,1],ax[1,0]])
ax[1,1].set_visible(False)

Выход:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...