本文主要是介绍plt 棒状图(柱状图)减小柱子间距,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
背景
画图的的时候发现两哥柱子之间的间隔太大,不好看
解决办法
rects1 = plt.bar(x=xx, height=mean1, width=0.6, alpha=0.8,align='edge', color='blue')
这个宽度是由 width 决定的 ,调整width 的大小即可,比如,我这儿的横坐标是range(0,5),所以 width 设置成1那就把地方都占满了,也就是柱子之间没空隙
width 等于0.8的时候
当然,如果你设定的x是 range(0,10,2),那可能要 width =2.0 才是无空隙
我最后设置的是 width 等于0.6,得到一个较好的效果
附加
在这个过程中涉及到重设图窗的大小,主要用到如下代码
params = {'figure.figsize': '5, 5'
}
plt.rcParams.update(params)
目的是通过等比例放大(缩小)图窗让我的图更好看,更切合,不突兀
完整代码
mean1,mean2,mean3=avgSlove(X,y)plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
label_list = ['色调', '红色均值', '相对红色分量', '粗度','高频能量'] # 横坐标刻度显示值
print(len(label_list))
xx = range(len(label_list))'''调整图窗大小'''
params = {'figure.figsize': '5, 5'
}
plt.rcParams.update(params)
'''调整图窗大小'''rects1 = plt.bar(x=xx, height=mean1, width=0.6, alpha=0.8,align='edge', color='blue')
plt.ylim(0, 1) # y轴取值范围
plt.ylabel("归一化后的值")
plt.xticks([index + 0.3 for index in xx], label_list) #这儿的0.3是配合宽度0.6来的,是他的一半,目的是让刻度线在柱子的中间
plt.xlabel("特征",labelpad=8.5)
plt.show()
这篇关于plt 棒状图(柱状图)减小柱子间距的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!