用matplotlib画水平条形图时,先读取的数据会在水平靠近x轴的位置显示,有时候在分析数据时不够直观,因为我们通常喜欢先看符合标准的频数(产品质量检测为优)或者单位最小的累计频数(天/周/月/季度/年)。
用excel可以设置坐标轴逆序排列实现,那么Python中可以插入一段代码实现
使用以下代码绘制简单水平条形图时
plt.barh(y,width,height,color,tick_label)
y:垂直坐标轴上刻度值
width:需要绘图的数值序列
height:水平条形图的宽度(看成沿y轴方向的距离)
color:条形图的颜色
tick_label:垂直坐标轴的刻度标签
示例如下
index_1=np.arange(0,3,1)
plt.barh(y=index_1,
width=day[:,0],
tick_label=index_1,
color='#008080',
height=0.6,
)
plt.title('Statistics of mean excess of SO2',fontsize=8)
plt.show()
画出的图就是这样的,小标签在下
这样的图不够美观,我们可以看下读取的源数据是下面这样的
是按0、1、2的顺序画图,我想要按2、1、0的顺序画图,那么只要有一段逆序代码就行了,修正后代码如下:
index_1=np.arange(0,3,1)
ylabel_1=[index_1[0]]
for i in range(1,len(index_1)):
ylabel_1.insert(0,index_1[i])
plt.barh(y=ylabel_1,
width=day[:,0],
tick_label=ylabel_1,
color='#008080',
height=0.6,
)
plt.title('Statistics of mean excess of SO2',fontsize=8)
plt.show()