簡體   English   中英

使用具有不同數據框形狀的matplotlib繪制條形圖

[英]Plot bar graph using matplotlib with different dataframe shape

我有以下三個不同的數據框。前兩個的形狀為(4,),最后一個的形狀為(2,)。 如何轉換數據框的形狀?

當我嘗試在條形圖中繪制所有三個時,最后一個DF失敗,並顯示“ ValueError:形狀不匹配:對象無法廣播為單個形狀”

如何通過將“ Empty”和“ Invalid”顯示為0在同一條形圖中繪制DF3。

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"))

@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"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM