Как мне построить Pandas столбцы Dataframe на отдельных рисунках? - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь взять Pandas фрейм данных с 57 столбцами и нанести их на гистограмму с 3 столбцами на фигуру. Причина заключается в том, что изменение данных и длины столбцов затрудняет просмотр данных на многих графиках. Построение нескольких столбцов на подплоте не вариант, поэтому каждый график должен быть виден в выходном размере. Учитывая данные, которые я нашел, 3 участка на фигуру выглядят лучше всего. Вот мой сценарий для построения кадра данных:

fig, ax = plt.subplots(nrows=len(df.columns), ncols=1, sharex=True, sharey=True)
yscale = np.ceil(df.abs().select_dtypes(include=[np.number]).values.max())
plt.yscale('symlog')
plt.ylim(-yscale, yscale)
t = list(df.columns.values)
n = 0
for i in df:
    df['positive'] = df[i] > 0
    df[i].plot.bar(ax=ax[n], rot=0, width=1.0, legend=False, position=0, color=df.positive.map({True: 'g', False: 'r'}))
    ax[n].set_title(t[n])
    ax[n].axhline(y=0, linewidth=1, color='k')
    ax[n].tick_params(which='major', axis='x', length=2)
    ax[n].tick_params(which='major', axis='y', length=6)
    n += 1
plt.tight_layout()
plt.show()

Было бы проще всего разбить кадр данных на несколько меньших кадров данных? Единственное, что меня беспокоит, так это то, что на каждом кадре данных будет разное количество столбцов с разными выборками.

1 Ответ

0 голосов
/ 28 февраля 2020

Это, кажется, то, что вы хотите

for i in range(19):
    df.iloc[:,i*3:i*3+3].plot.bar(subplots=True,
                                  legend=None)

, что дает 19 сюжетов, подобных этому:

enter image description here

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