Python-Matplotlib绘制条形图

简介: 条形图具有丰富的表现形式,常见的类型包括单组条形图,多组条形图,堆积条形图和对称条形图等。本文利用Matplotlib绘制常见条形图。

条形图

条形图具有丰富的表现形式,常见的类型包括单组条形图,多组条形图,堆积条形图和对称条形图等。

单组条形图

条形图的每种表现形式都可以绘制成垂直条形图或水平条形图,以单组条形图的两种绘制方式为例。

垂直条形图

importmatplotlib.pyplotaspltdata= [10., 20., 5., 15.]
plt.bar(range(len(data)), data)
plt.show()

绘图10.png

Tips:plt.plot()函数的作用是:接收两个参数,包括每个条形的x坐标和每个条行的高度。

通过可选参数 width,pyplot.bar() 提供了一种控制条形图中条状宽度的方法:

importmatplotlib.pyplotaspltdata= [10., 20., 5., 15.]
plt.bar(range(len(data)), data, width=0.5)
plt.show()

绘图11.png

水平条形图

如果更喜欢水平条形外观,就可以使用 plt.barh() 函数,在用法方面与 plt.bar() 基本相同,但是修改条形宽度(或者在水平条形图中应该称为高度)的参数需要使用 height:

importmatplotlib.pyplotaspltdata= [10., 20., 5., 15.]
plt.barh(range(len(data)), data, height=0.5)
plt.show()

绘图13.png

多组条形图

当需要比较不同年份相应季度的销量等此类需求时,我们可能需要多组条形图。

importnumpyasnpimportmatplotlib.pyplotaspltdata= [[10., 20., 30., 20.],[40., 25., 53., 18.],[6., 22., 52., 19.]]
x=np.arange(4)
plt.bar(x+0.00, data[0], color='b', width=0.25)
plt.bar(x+0.25, data[1], color='g', width=0.25)
plt.bar(x+0.50, data[2], color='r', width=0.25)
plt.show()

绘图14.png

堆积条形图

通过使用 plt.bar() 函数中的可选参数,可以绘制堆积条形图。

importmatplotlib.pyplotasplty_1= [3., 25., 45., 22.]
y_2= [6., 25., 50., 25.]
x=range(4)
plt.bar(x, y_1, color='b')
plt.bar(x, y_2, color='r', bottom=y_1)
plt.show()

绘图15.png

Tips:plt.bar()函数的可选参数bottom允许指定条形图的起始值。

可以结合 for 循环,利用延迟呈现机制堆叠更多的条形:

importnumpyasnpimportmatplotlib.pyplotaspltdata=np.array([[5., 30., 45., 22.], [5., 25., 50., 20.], [1., 2., 1., 1.]])
x=np.arange(data.shape[1])
foriinrange(data.shape[0]):
plt.bar(x, data[i], bottom=np.sum(data[:i], axis=0))
plt.show()

绘图17.png

对称条形图

一个简单且有用的技巧是对称绘制两个条形图。例如想要绘制不同年龄段的男性与女性数量的对比:

importnumpyasnpimportmatplotlib.pyplotaspltw_pop=np.array([5., 30., 45., 22.])
m_pop=np.array( [5., 25., 50., 20.])
x=np.arange(4)
plt.barh(x, w_pop)
plt.barh(x, -m_pop)
plt.show()

绘图18.png

图中女性人口的条形图照常绘制。然而,男性人口的条形图的条形图的条形图向左延伸,而不是向右延伸。可以使用数据的负值来快速实现对称条形图的绘制。

相关文章
|
7月前
|
数据可视化 Python
【100天精通Python】Day62:Python可视化_Matplotlib绘图基础,绘制折线图、散点图、柱状图、直方图和饼图,以及自定义图标外观和功能,示例+代码
【100天精通Python】Day62:Python可视化_Matplotlib绘图基础,绘制折线图、散点图、柱状图、直方图和饼图,以及自定义图标外观和功能,示例+代码
124 0
【python】使用matplotlib绘图使刻度线向内
成功使用代码实现matplotlib绘制的图刻度线朝内
【python】使用matplotlib绘图使刻度线向内
|
2月前
|
数据采集 前端开发 C++
Python通过matplotlib动态绘图实现中美GDP历年对比趋势动图
随着中国的各种实力的提高,经常在各种媒体上看到中国与各个国家历年的各种指标数据的对比,为了更清楚的展示历年的发展趋势,有的还做成了动图,看到中国各种指标数据的近年的不断逆袭,心中的自豪感油然而生。今天通过Python来实现matplotlib的动态绘图,将中美两国近年的GDP做个对比,展示中国GPD对美国的追赶态势,相信不久的将来中国的GDP数据将稳超美国。
54 2
|
7月前
|
数据可视化 Python
【100天精通Python】Day65:Python可视化_Matplotlib3D绘图mplot3d,绘制3D散点图、3D线图和3D条形图,示例+代码
【100天精通Python】Day65:Python可视化_Matplotlib3D绘图mplot3d,绘制3D散点图、3D线图和3D条形图,示例+代码
181 0
|
7月前
|
数据可视化 关系型数据库 Python
【100天精通Python】Day66:Python可视化_Matplotlib 3D绘图,绘制3D曲面图、3D填充图,3D极坐标图,示例+代码
【100天精通Python】Day66:Python可视化_Matplotlib 3D绘图,绘制3D曲面图、3D填充图,3D极坐标图,示例+代码
132 0
|
8月前
|
数据可视化 数据挖掘 Python
Python 数据分析(二):Matplotlib 绘图
Python 数据分析(二):Matplotlib 绘图
111 0
Python 数据分析(二):Matplotlib 绘图
|
API Python
python matplotlib.axes相关属性设置(绘图方式、坐标轴、坐标刻度、文本等)
为什么要用 ax ,而不是 plt 呢? 因为在绘制子图过程中,对于每一个子图的不同设置,ax 可以直接实现对于单个子图的设定,因此掌握必要的 ax 设置命令尤为重要!
python matplotlib.axes相关属性设置(绘图方式、坐标轴、坐标刻度、文本等)
|
人工智能 数据可视化 Python
Python Matplotlib库:基本绘图补充
上期我们讲了 Matplotlib 库的基本语法,并以折线图为例,绘制了我们的第一幅图表。这期我们来说说如何用 Matplotlib 库绘制其他常用图表。plot()是 Matplotlib 库中绘制折线图的方法,而绘制散点图,我们会使用scatter()。在 Matplotlib 库中,我们使用bar()方法来绘制柱状图。使用stem()方法来绘制火柴图。使用step()方法来绘制阶梯图。使用fill_between()方法来填充一段区间。
133 0
Python Matplotlib库:基本绘图补充
|
数据挖掘 Python
【Python数据分析 - 1】:matplotlib绘图架构Part1【折线图和基础绘图】
【Python数据分析 - 1】:matplotlib绘图架构Part1【折线图和基础绘图】
238 0
【Python数据分析 - 1】:matplotlib绘图架构Part1【折线图和基础绘图】
|
测试技术 Python
Python编程:解决matplotlib绘图中文乱码问题
Python编程:解决matplotlib绘图中文乱码问题
135 0
Python编程:解决matplotlib绘图中文乱码问题