Python 如何在Matplotlib的子批次中添加多个条形图

Python 如何在Matplotlib的子批次中添加多个条形图,python,pandas,dataframe,matplotlib,Python,Pandas,Dataframe,Matplotlib,我有一个动态的熊猫数据框架。我试图在一个子图中放置一个条形图,在一个窗口中显示多个图形。 在x轴上有“面积”,在y轴上有面积计数 Names Area Area Count 0 Info 1 [LOCATION, PERSON] [130, 346] 1 Info 2 [NRP] [20] rows=len(df1['Names']) 图,ax=plt.子批次(nrows=行

我有一个动态的熊猫数据框架。我试图在一个子图中放置一个条形图,在一个窗口中显示多个图形。 在x轴上有“面积”,在y轴上有面积计数

   Names                 Area         Area Count
0  Info 1        [LOCATION, PERSON]   [130, 346]
1  Info 2              [NRP]          [20]
rows=len(df1['Names'])
图,ax=plt.子批次(nrows=行,ncols=1)
df1['Area'].绘图(ax=ax[0,0])
df1[“面积计数”]。绘图(ax=ax[0,1])
  • 但是,由于显示的数据是离散的(不是连续的),所以不清楚您正在尝试什么,应该将其绘制为条形图,而不是线形图
  • 应使用
    pandas.Series.explode
    从列表中删除所有值
将熊猫作为pd导入
导入seaborn作为sns
#测试数据帧
数据={'Names':['Info 1','Info 2'],'Area':[['LOCATION','PERSON'],['NRP']],'Area Count':[[130346],[20]}
df=pd.DataFrame(数据)
#显示(df)
名称面积计数
0信息1[位置,人员][130346]
1信息2[NRP][20]
#分解列表
df=df.set_index('Names')。apply(pd.Series.explode)。reset_index()
#显示(df)
名称面积计数
0信息1位置130
1信息1人346
2信息2 NRP 20
策划
df.plot.bar(x='Area',y='Area Count')

sns.barplot(data=df,x='Area',y='Area Count',hue='Names',dodge=False)

df.pivot(index='Area',columns='name',values='areacount').plot.bar()

df.pivot(index='name',columns='Area',values='Area Count').plot.bar()

sns.catplot(data=df,col='name',x='Area',y='Area Count',kind='bar',estimator=sum)

rows=len(df.Names.unique())
图,ax=plt.子批次(nrows=rows,ncols=1,figsize=(6,8))
对于枚举中的i,v(df.Names.unique()):
数据=df[df.Names==v]
data.plot.bar(x='Area',y='Area Count',title=v,ax=ax[i],legend=False)
plt.紧_布局()
plt.show()

你说得对。谢谢