python 并列柱状图_matplotlib可视化篇之并列柱状图–直方图(3)

并列柱状图,即将不同数据集进行并列显示,直观反映数据集之间的差异。

本节将实现柱状图的并列显示以及对柱状图进行填充。

相关函数matplot.pyplot.bar()或者barh(),bar()函数的官方项目地址,matplotlib可视化篇bar()–直方图(1)。

最简实现

并列柱状图

import matplotlib.pyplot as plt

plt.rcParams[‘font.sans-serif’]=[‘SimHei’]#设置字体以便支持中文

import numpy as np

x=np.arange(5)#柱状图在横坐标上的位置

列出你要显示的数据,数据的列表长度与x长度相同

y1=[1,3,5,4,2]

y2=[2,5,3,1,6]

bar_width=0.3#设置柱状图的宽度

tick_label=[‘上海’,’武汉’,’南京’,’天津’,’南宁’]

绘制并列柱状图

plt.bar(x,y1,bar_width,color=’salmon’,label=’类别A’)

plt.bar(x+bar_width,y2,bar_width,color=’orchid’,label=’类别B’)

plt.legend()#显示图例,即label

plt.xticks(x+bar_width/2,tick_label)#显示x坐标轴的标签,即tick_label,调整位置,使其落在两个直方图中间位置

plt.show()

最简实现效果:

python 并列柱状图_matplotlib可视化篇之并列柱状图--直方图(3)

并列柱状图实现效果那么对于水平方向该如何实现呢?答案很简单,将bar()换为barh(),将plt.xticks改为plt.yticks,这里想说明的是,的确可以这样实现,但要理解在barh()中,其实对应参数的含义,比如,x,y其实对应y,width,即柱状图所处的高度及其宽度,可以查看官方barh()项目地址,或者可视化篇barh()–直方图(2)。

那么,对于在柱状图内部实现画线填充,又该如何实现呢?答案是在plt.bar()中添加参数hatch,hatch可选项有{‘/’, ”, ‘|’, ‘-‘, ‘+’, ‘x’, ‘o’, ‘O’, ‘.’, ‘*’},这里将选取两种实现,并对比同一种填充形状下不同密度的表现实现以及效果。

import matplotlib.pyplot as plt

plt.rcParams[‘font.sans-serif’]=[‘SimHei’]#设置字体以便支持中文

x=np.arange(5)#柱状图在横坐标上的位置

列出你要显示的数据,数据的列表长度与x长度相同

y1=[1,3,5,4,2]

y2=[2,5,3,1,6]

plt.subplot(121)

bar_width=0.3

{‘/’, ‘\’, ‘|’, ‘-‘, ‘+’, ‘x’, ‘o’, ‘O’, ‘.’, ‘*’}

plt.bar(x,y1,bar_width,color=’seagreen’,hatch=’xxx’,label=’xxx效果’)

plt.bar(x+bar_width,y2,bar_width,color=’lightsalmon’,hatch=’O’,label=’O实现效果’)

plt.legend()#显示图例,即label

plt.xticks(x+bar_width/2,tick_label)#显示x坐标轴的标签,即tick_label,调整位置,使其落在两个直方图中间位置

plt.subplot(122)

plt.bar(x,y1,bar_width,color=’burlywood’,hatch=’xxx’,label=’xxx加密效果’)

plt.bar(x+bar_width,y2,bar_width,color=’tomato’,hatch=’x’,label=’x实现效果’)

plt.legend()

plt.xticks(x+bar_width/2,tick_label)

plt.show()

使用不同的hatch实现效果如下:

python 并列柱状图_matplotlib可视化篇之并列柱状图--直方图(3)

添加hatch参数实现效果值得注意的有两点:1.每一种hatch字符代表填充的形状,其中’*’代表五角星,’.’代表以点填充,’o’代表圆形填充;2. 重复使用字符,实现的是类似加密,使得填充字符间距更小,当bar_width比较小时看起来效果好,注意并不是越密越好,过密会失去字符特征,还请在尝试中选择效果最好的为准。

Original: https://blog.csdn.net/weixin_42651748/article/details/114913951
Author: Jon Sco
Title: python 并列柱状图_matplotlib可视化篇之并列柱状图–直方图(3)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/768517/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球