[英]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.