matplotlib 条形图,matplotlib横向条形图
这篇文章主要为大家详细介绍了Pythonmatplotlib实现条形统计图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Python-matplotlib实现条形统计图,供大家参考,具体内容如下
效果图展示如下:
该代码可以处理多个实验多组观测值的展示,代码如下:
将matplotlib.pyplot作为血小板计数导入
将数组作为铭牌导入
从matplotlib.pyplot导入多重定位器
def plot_bar(experiment_name,bar_name,bar_value,error_value=None,):
Args:
实验名称: x标签
bar_name:图例名称
bar _ value :列表(len(experiment _ name),每个元素包含一个np.array(),
其中包含每组中的条形值
error _ value :列表(len(experiment _ name),每个元素包含一个np.array(),
其包含每组中的误差值
返回:
# 用于正常显示中文标签
# PLT。RC params[ font。sans-serif ]=[ sim hei ]
colors=[lightsteelblue , cornflowerblue , royalblue , blue , mediumblue , darkblue , navy , midnightblue ,
薰衣草,]
assert len(bar _ value[0])=len(colors)#如果不是,则尝试将颜色添加到"颜色"中
PLT。RC params[轴。unicode _ MINUS ]=False
plt.style.use(seaborn )
font={weight: normal , size: 20,}
font _ title={ weight : normal , size: 28,}
#条形宽度
宽度=0.2
#组数据
x _ bar=NP。arange(len(experiment _ name))
#创建图形
plt.figure(figsize=(10,9))
ax=plt.subplot(111) #假如设置为221,则表示创建两行两列也就是四个子画板,斧头为第一个子画板
#绘图栏
bar_groups=[]
值=[]
对于范围内的I(len(bar _ value[0])):
对于范围内的j(len(实验名称)):
值.追加(条形值[j][i])
group=ax。bar(x _ bar-(len(experiment _ name)-3-I)* width,copy.deepcopy(value),width=width,color=colors[i],label=bar_name[i])
bar_groups.append(group)
value.clear()
#增加每个条形的高度
i=j=0
对于bar _ groups:中的条形
j=0
对于bars:中的矩形
x=rect.get_x()
height=rect.get_height()
# ax.text(x 0.1,1.02 * height,str(height),fontdict=font)
#误差线
如果错误值为:
ax.errorbar(x width/2,height,yerr=error_value[j][i],fmt=-,ecolor=black ,
线宽度=1.2,倾覆=2,
capthick=1.2)
j=1
i=1
# 设置刻度字体大小
plt.xticks(fontsize=15)
plt.yticks(fontsize=18)
# 设置x轴的刻度
ax.set_xticks(x_bar)
斧头。set _ xticklabels(experiment _ name,fontdict=font)
# 设置英语字母表的第25个字母轴的刻标注
ax.set_ylabel(剧集成本,fontdict=font_title)
ax.set_xlabel(Experiment ,fontdict=font_title)
# 是否显示网格
ax.grid(False)
# 拉伸英语字母表的第25个字母轴
ax.set_ylim(0,7.5)
# 把轴的刻度间隔设置为1,并存在变量里
y _ major _ locator=多重定位器(2.5)
斧头。雅克斯。设置_专业_定位器(y _专业_定位器)
# 设置标题
plt.suptitle(成本比较,fontsize=30,horizontalalignment=center )
plt.subplots_adjust(左=0.11,下=0.1,右=0.95,上=0.93,wspace=0.1,hspace=0.2)
# 设置边框线宽为2.0
ax.spines[bottom].set_linewidth(2.0 )
# 添加图例
ax.legend(loc=upper left ,frameon=True,fontsize=19.5)
# plt.savefig(test.png )
plt.show()
plt。图例()
if __name__==__main__:
测试实验名称=[测试1 ,测试2 ,测试3 ,测试4]
test_bar_name=[A , B , C]
test_bar_value=[
np.array([1,2,3]),
np.array([4,5,6]),
np.array([3,2,4]),
np.array([5,2,2])
]
测试错误值=[
np.array([1,1,2]),
np.array([0.2,0.6,1]),
np.array([0,0,0]),
np.array([0.5,0.2,0.2])
]
绘图栏(测试实验名称,测试栏名称,测试栏值,测试错误值)
这就是本文的全部内容。希望对大家的学习有所帮助,也希望大家能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。