我是python的新手,我做了一个tkinter界面,在这个界面上可以提问,然后在另一个窗口中绘制图形。你知道吗
我正在使用panda库处理大型csv文件。你知道吗
我遇到的问题是,在图形窗口中,我试图在同一子图上绘制3个堆叠的直方图。你知道吗
更具体地说,我有3个值,警报值(VA,VI和VR),年份值和位置值(命名为PK(类型:float))。你知道吗
我需要绘制3个堆叠直方图(按年份)相邻的每个位置和每个警报值在画布中的子图。你知道吗
我尝试使用matplotlib来绘制按位置排序的三个警报值,但我不知道如何在图表上显示年份。所以我尝试了另一种方法,但没有完全奏效。你知道吗
我试着做了一些df.groupby.plot图,如果我只绘制一个堆叠的直方图,但如果我想显示其中三个直方图,它就不起作用了。我成功地绘制了三个不同的叠加直方图,但它只显示了三个值所在的位置,它们不是相邻的,而是相互重叠的。那不是我想要的。你知道吗
有时我没有VI或VR,这就是为什么我把try/except放在这里,这样它就不会停止我的脚本。你知道吗
你能帮我弄清楚吗?你知道吗
下面是我要绘制的df的一个示例:
g3m['pk']=[1,1,1,2,2,2,4,4,5,5,5,5,5,5,6,6,10,10,10,12,12,12,12,12,12,12,12]
g3m['annee']=[2010,2011,2012,2010,2012,2013,2011,2014,2010,2011,2012,2012,2012,2016,2016,2017,2010,2010,2014,2010,2010,2010,2010,2012,2013,2014,2014]
g3m['class_seuil']=['VA','VA','VA','VA','VA','VA','VA','VA','VA','VA','VA','VI','VR','VI','VI','VA','VI','VI','VR','VA','VA','VI','VI','VA','VI','VR','VA']
g3m['type_mesure']=['MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC','MAC']
它是熊猫数据帧。
下面是我在子图中绘制的代码:
这是我身材的宣言:
f = Figure(figsize=(15,8), dpi=100)
f.subplots_adjust(top=0.97,hspace=0.41,left=0.05,bottom=0.08,right=0.91)
a = f.add_subplot(311)
c = f.add_subplot(312)
b = f.add_subplot(313)
下面是我的代码:
try:
g3mVa=pa.DataFrame()
g3mVa['pk']=g3m[g3m['class_seuil']=='VA']['pk_decimal_km_m']
g3mVa['annee']=g3m[g3m['class_seuil']=='VA']['annee']
g3mVa['type_mesure']=g3m[g3m['class_seuil']=='VA']['type_mesure']
g3mVa.groupby(['pk','annee']).count().unstack().plot(kind='bar',stacked=True,colormap='Greens',y='type_mesure',grid=True,ax=c,rot='horizontal')
c.hold(True)
except:
pass
try:
g3mVi=pa.DataFrame()
g3mVi['pk']=g3m[g3m['class_seuil']=='VI']['pk_decimal_km']
g3mVi['annee']=g3m[g3m['class_seuil']=='VI']['annee']
g3mVi['type_mesure']=g3m[g3m['class_seuil']=='VI']['type_mesure']
g3mVi.groupby(['pk','annee']).count().unstack().plot(kind='bar',stacked=True,colormap='Oranges',y='type_mesure',grid=True,ax=c,rot='horizontal')
c.hold(True)
except:
pass
try:
g3mVr=pa.DataFrame()
g3mVr['pk']=g3m[g3m['class_seuil']=='VR']['pk_decimal_km_p']
g3mVr['annee']=g3m[g3m['class_seuil']=='VR']['annee']
g3mVr['type_mesure']=g3m[g3m['class_seuil']=='VR']['type_mesure']
g3mVr.groupby(['pk','annee']).count().unstack().plot(kind='bar',stacked=True,y='type_mesure',colormap='Reds',grid=True,ax=c,rot='horizontal')
c.hold(True)
except:
pass
你能帮我吗?你知道吗
有没有可能像我想的那样画出来?你知道吗
对不起,我把代码弄错了,
g3m['pk_decimal_km_m']
,g3m['pk_decimal_km']
和g3m['pk_decimal_km_p']
向g3m['pk']
报告。你知道吗这个错误是由于我所做的所有尝试。你知道吗
这是我的代码更正。你知道吗
相关问题 更多 >
编程相关推荐