Наложение двух субплотов в один и тот же субплот (matplotlib) - PullRequest
0 голосов
/ 07 ноября 2019

Я построил два разных субплота, используя matplotlib.plt и pandas.DataFrame.plot.

Обе фигуры хранятся в одном и том же кадре данных панд, который я назвал f. Вы можете загрузить пример данных здесь .

Один из этих графиков не может быть описан функцией (то есть одно значение x может дать два или более значений y. Этоэто то, что вызывает проблему (я пытаюсь построить квадрат).

Я пытался:

f[f['figure'] == 'fig1'].plot(x='x_axis', y='y_axis', legend=False)
f[f['figure'] == 'fig2'].plot(x='x_axis', y='y_axis', legend=False)
plt.show()

Figs

Iхотите, чтобы оба подзадачи были объединены в один. Есть ли способ построить второй подзаговор в том же подзаголовке, что и первый? Я хочу сложить обе фигуры в один подзаговор.

Ответы [ 2 ]

1 голос
/ 07 ноября 2019

Вы всегда можете снова и снова строить график на одном и том же графике, если вы сохранили объект его осей, например, как

import matplotlib.pyplot as plt
fig, ax = plt.subplots()

f[f['figure'] == 'fig1'].plot(ax=ax, x='x_axis', y='y_axis', legend=False)
f[f['figure'] == 'fig2'].plot(ax=ax, x='x_axis', y='y_axis', legend=False)
plt.show()

Обратите внимание, что это только один единственный пример получения текущих осей - другойможет быть

ax = plt.gca()

Главное здесь - обратиться к нему в команде сюжета панд с помощью ax kwarg.

1 голос
/ 07 ноября 2019

Использование DataFrame.pivot_table:

df_toplot=df.pivot_table(columns='figure',index='x_axis',values='y_axis').ffill()
print(df_toplot)

Выход

figure        fig1       fig2
x_axis                       
0       100.000000  37.033667
1        99.969669  37.033667
2        99.939339  37.033667
3        99.939339  37.033667
4        99.909008  37.033667
...            ...        ...
365       0.060661  18.516833
366       0.060661  18.516833
367       0.060661  18.516833
368       0.060661  18.516833
369       0.030331  18.516833

df_toplot.plot(legend=False)

Выходное изображение:

enter image description here

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