python画堆积图,python堆积柱形图
这篇文章主要为大家详细介绍了大蟒绘制百分比堆叠柱状图并填充图案,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
通过大蟒中的绘制精美的图表绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案。主要原因是有些论文打印出是黑白色的,不同类别之间区分不明显,所以做了这种方案。
存在一个问题:不知道如何根据填充图案设置图例,本文中可谓"曲线救国",将图例的颜色块设置为了白色,所以如果有人知道如何根据阴影设置图例可以讨论,原始的图例方法中是未提供该类参数的。
图形如下:
代码如下
将数组作为铭牌导入
将matplotlib.pyplot作为血小板计数导入
将matplotlib .补丁作为匹配项导入
将matplotlib.ticker作为mtick导入
从matplotlib.ticker导入百分比格式化程序
#设置填充的图案
标记=[o ,/, * ,,\\]
labels=[i for i in range(2010,2021)]
#数据
first=[42.85,41.15,39.41,35.35,35.53,30.45,29.81,31.85,32.41,30.42,31.49]
秒=[23.20,26.40,27.77,29.02,32.30,35.40,36.42,35.95,35.45,34.00,31.93]
第三=[14.08,12.99,12.51,11.54,11.70,12.27,12.69,11.81,10.63,9.98,9.95]
第四=[16.14,16.17,17.34,21.53,17.66,19.36,18.40,17.83,19.15,23.09,24.10]
其他=[3.73,3.28,2.98,2.57,2.81,2.53,2.67,2.57,2.36,2.51,2.54]
数据=[第一、第二、第三、第四、其他]
x=范围(长度(标签))
宽度=0.35
# 将底部英语字母表的第25个字母元素都初始化为0
bottom_y=np.zeros(len(labels))
data=np.array(数据)
# 为计算百分比做准备
sums=np.sum(数据,轴=0)
j=0
figsize=8,6
图,ax=PLT。子情节(图形大小=图形大小)
PLT。RC params[ font。sans-serif ]=[ sim hei ]
对于数据:中的英语字母表中第九个字母
y=i /总和
plt.bar(x,y,width,hatch=np.array(marks)[j],bottom=bottom_y,color=white ,edgecolor=black )
bottom_y=y
plt.xticks(x,标签)
#plt.yticks(范围(1),ylabel)
legend_labels=[o legend1 ,/legend2 , * legend3 , legend4 ,r\ legend5]
color=[白色,白色,白色,白色,白色]
修补程序=[m修补程序Patch(color=color[h],label={:s} .范围内英语字母表中第八个字母的格式(legend _ labels[h])(len(legend _ labels))]
ax=plt.gca()
box=ax.get_position()
#纵轴设置为百分比
PLT。GCA()ya xis。set _ major _ formatter(百分比格式化程序(1))
ax.legend(handles=patches,ncol=1,bbox_to_anchor=(1,1),borderaxespad=0 .) # 生成图例
图。支线剧情_调整(右=0.7)
j=1
#绘制平行于x轴的虚线
对于(1,11,1):范围内的英语字母表中第九个字母
plt.axhline(y=i/10,linestyle=虚线,color=黑色,线宽=0.5)
标签=ax。get _ xticklabels()ax。get _ yticklabels()
#设置数字标签字体
【标签。set _ font name( Times New Roman )用于标签中的标签]
plt.savefig(rfilename.svg ,format=svg )
plt.show()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持盛行信息技术软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。