Python 将matplotlib条形图拆分为3

Python 将matplotlib条形图拆分为3,python,dataframe,matplotlib,Python,Dataframe,Matplotlib,按事故发生月份划分事故严重程度。我的数据有3个严重性值(0,1,2),它们都在一个图表下。我想为每个严重性值创建三个单独的图表 month = df.groupby(['Month','Severity']).size().unstack() print(month) month.plot(kind='bar') plt.legend(title = 'Severity') plt.show() 以下是我使用Matplotlib的解决方案: #导入软件包 将matplotlib.pyplot作

按事故发生月份划分事故严重程度。我的数据有3个严重性值(0,1,2),它们都在一个图表下。我想为每个严重性值创建三个单独的图表

month = df.groupby(['Month','Severity']).size().unstack()
print(month)
month.plot(kind='bar')
plt.legend(title = 'Severity')
plt.show()

以下是我使用Matplotlib的解决方案:

#导入软件包
将matplotlib.pyplot作为plt导入
将numpy作为np导入
作为pd进口熊猫
#创建随机数据-只需将数据转换为数据帧
月份=np.数组(['一月','二月','三月','四月','五月','六月','七月',
“八月”、“九月”、“十月”、“十一月”、“十二月”])
numMonths=月。形状[0]
sev0=np.random.randint(1300015500,(numMonths,)
sev1=np.random.randint(250350,(numMonths,)
sev2=np.random.randint(20,35,(numMonths,)
d={'Month':months'Sev_0':sev0'Sev_1':sev1'Sev_2':sev2}
df=pd.DataFrame(数据=d)
#创建绘图
对于范围(3)中的i:
yData=“Sev_uu”+str(一)
plt.图(figsize=(12,10))
产品名称(yData)
plt.bar(df.Month,df[yData].to_numpy())
plt.xlabel(“月”)
plt.ylabel(“事故数量”)
其中,
df
是您的数据(用实际数据替换随机生成的数据)

以下是一个示例输出:

如果您想获得更多乐趣,可以使用Plotly,它具有悬停和缩放功能
此外,您还可以控制在一个交互式图形中绘制哪个严重性值

绘图导入
导入plotly.graph_objs作为go
从plotly.offline导入init_notebook_模式、plot、iplot、下载_plotlyjs
初始笔记本模式(已连接=真)
plotly.offline.init_笔记本_模式(connected=True)
dataAllSev=[]
对于范围(3)中的i:
yData=“Sev_uu”+str(一)
附加(go.Bar(x=df.Month,y=df[yData].to_numpy(),name=yData))
图=开始图(数据=dataAllSev)
图更新布置图(title=“按严重程度划分的事故数量”,xaxis\u title='Month',yaxis\u title='事故数量')
图2(图3)
以下是Plotly中的组合图:

plt.subplot()可能会引起您的兴趣,如果您想要单独的图形,但在同一个图形中