Вставьте график pandas DataFrame в подзаголовок matplotlib

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

gs = gridspec.GridSpec(2, 2, width_ratios=[1,1], height_ratios=[1,1])

ax1 = plt.subplot(gs[0])
ax2 = plt.subplot(gs[1])
ax3 = plt.subplot(gs[2])
ax4 = plt.subplot(gs[3])

До сих пор мне удавалось вводить то, что я хотел, в подзаголовки, но я хочу иметь возможность вводить график pandas DataFrame в ax3, и я не могу этого сделать. Я уже написал программу pandas и просто собирался вставить ее в более крупный сценарий, чтобы она была показана в подзаголовке.

Это строка кода, которая используется для построения графика pandas DataFrame:

df.plot(subplots=True, sharey=True, ylim=(0,(y_max*1.5)))

person user3755536    schedule 08.07.2014    source источник


Ответы (1)


При построении графика с использованием pandas.Dataframe.plot вы можете выбрать Axes объект, который вы хотите построить с аргументом ключевого слова ax, как показано ниже:

gs = gridspec.GridSpec(2, 2, width_ratios=[1,1], height_ratios=[1,1])

ax1 = plt.subplot(gs[0])
ax2 = plt.subplot(gs[1])
ax3 = plt.subplot(gs[2])
ax4 = plt.subplot(gs[3])

# ...some other code that defines df...

df.plot(ax=ax3)

Это добавит ваши данные в объект ax3. Обратите внимание, что это отобразит все ваши столбцы в этот один подзаголовок, если вам нужен один конкретный столбец, вы можете сделать df['my_col_name'].plot(ax=ax3).

person Ffisegydd    schedule 08.07.2014
comment
Это действительно полезно, спасибо. В моем исходном графике DataFrame у него есть 4 подграфика данных, и я не могу заставить его отображать их так же, как в ax3. Есть ли способ сделать это? - person user3755536; 08.07.2014
comment
Итак, вы хотите иметь 4 сюжетных линии внутри ax3? Или ax3 является одним из 4 подграфиков, и вы хотите автоматически отображать каждый из ваших столбцов в ax? - person Ffisegydd; 08.07.2014
comment
Я хочу 4 подзаговора в ax3. Исходный код, который отображает df, делит его на 4 подзаголовка, но я не могу добавить к этому часть (ax = ax3). - person user3755536; 08.07.2014
comment
К сожалению, похоже, что выбор параметра subplots переопределяет ваш выбор ax, и я не знаю, как это просто обойти. Если вы хотите не просто, вы можете создать более сложный объект GridSpec, который вместо этого имеет 7 ax: три будут ax1, ax2 и ax4, а оставшиеся четыре будут там, где в настоящее время находится ax3. - person Ffisegydd; 08.07.2014