Гистограмма с использованием matplotlib с различной формой данных - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть три разных фрейма данных, как показано ниже. Первые два имеют форму (4,), а последний имеет форму (2,).Как преобразовать форму фрейма данных?

Когда я пытаюсь построить все три на гистограмме, последний DF завершается с ошибкой «ValueError: несоответствие формы: объекты не могут быть переданы одной фигуре»

Как построить DF3на той же гистограмме, показывая «Пусто» и «Недействительно» как 0.

DF1:

Validity

Empty               2672

InValid              581

Multiple Entries     282

Valid               5526

Name: Lifecycle, dtype: int64

DF2:

Validity

Empty                1920

InValid               471

Multiple Entries     2325

Valid               33446

Name: Lifecycle, dtype: int64

DF3:

Validity

Multiple Entries    10334

Valid               11984

Name: Lifecycle, dtype: int64

Ниже мой код.

glot = sample_lot_number.groupby("Validity")

vlot = sample1_lot_number.groupby("Validity")

dplot = Data_Package_Lot_Number.dplot.groupby("Validity")

ind = np.arange(4)

width = 0.15

ax = plt.subplot()

p1 = ax.bar(ind+width,glot.Lifecycle.count(), width)

p2 = ax.bar(ind,vlot.Lifecycle.count(), width)

p3 = ax.bar(ind-width,dplot.Lifecycle.count(), width)

ax.set_xticks(ind + width / 2)

ax.set_xticklabels(("Empty","InValid","Multiple Entries","Valid"))

1 Ответ

0 голосов
/ 27 декабря 2018

@ busybear дал правильный ответ в комментарии.Ваш код не работает.Если бы я сделал предположение, вы можете попробовать следующий код:

glot = sample_lot_number.groupby("Validity")
vlot = sample1_lot_number.groupby("Validity")
dplot = Data_Package_Lot_Number.dplot.groupby("Validity")
df1 = glot.Lifecycle.count()
df2 = vlot.Lifecycle.count().reindex(df1)
df3 = dplot.Lifecycle.count().reindex(df1).fillna(0)

ind = np.arange(4)
width = 0.15
ax = plt.subplot()
p1 = ax.bar(ind+width, df1, width)
p2 = ax.bar(ind, df2, width)
p3 = ax.bar(ind-width, df3, width)
ax.set_xticks(ind + width / 2)
ax.set_xticklabels(("Empty","InValid","Multiple Entries","Valid"))
...