如何在Matplotlib中在条形图上方显示百分比?

您所在的位置:网站首页 如何在柱状图添加百分百线条颜色 如何在Matplotlib中在条形图上方显示百分比?

如何在Matplotlib中在条形图上方显示百分比?

2024-07-12 13:22| 来源: 网络整理| 查看: 265

如何在Matplotlib中在条形图上方显示百分比?

Matplotlib是Python中最常用的可视化库之一,用于绘制各种类型的图形,尤其是条形图,这是展示数据的常用方式之一。本文将介绍如何在Matplotlib中的条形图上方以百分比的形式显示对应的数值。

条形图绘制

在Matplotlib中,条形图可以使用Bar函数来绘制。下面我们使用一个简单的例子来演示如何绘制条形图。

import matplotlib.pyplot as plt import numpy as np # 数据 data = [10, 20, 30, 40, 50] # x轴的位置 x_pos = np.arange(len(data)) # 绘制条形图 plt.bar(x_pos, data) # 显示图像 plt.show()

代码中,首先我们引入matplotlib.pyplot和numpy库。然后定义了一个包含5个数据的列表,以及一个包含相同数目元素的numpy数组。np.arange函数用于生成一个等差数组,长度为5,可理解为将0,1,2,3,4放入一个数组中。

接下来,我们使用plt.bar函数来绘制条形图。plt.bar函数的参数会接收两个数组,第一个数组(x_pos)定义了条形图的每一项在x轴上的位置,第二个数组(data)则定义了条形图的高度。

在最后一步中,我们使用plt.show函数来显示条形图。该函数不仅显示图像,还能让Matplotlib进入交互模式,同时还允许用户手动调整图像。

执行上述代码,我们会得到如下的条形图,虽然能够清楚的看到各个柱条的高度,但并不方便我们比较各个柱条的大小关系。

条形图上方显示百分比

我们将使用plt.text()函数向每个柱条上方添加一个百分比标签。代码如下:

import matplotlib.pyplot as plt import numpy as np # 数据 data = [10, 20, 30, 40, 50] # x轴的位置 x_pos = np.arange(len(data)) # 绘制条形图 plt.bar(x_pos, data) # 显示百分比标签 for i, v in enumerate(data): plt.text(x_pos[i] - 0.2, v + 1, str(v) + '%', color='blue', fontweight='bold', fontsize=14) # 显示图像 plt.show()

代码中,我们使用enumerate()函数,它在遍历一个列表时可以同时获得每个元素的值和索引,从而避免使用单独的变量来记录索引。 enumerate()函数按序号和元素组成元组,并且遍历其列表。函数的两个参数分别为要遍历的列表和起始序号(默认为0)。

我们在plt.text()函数内部为每个柱条添加百分比标签。标签分为三部分:x轴位置,y轴位置,和文本字符串。在这里,我们使用i作为索引,v作为值,x轴位置的公式是x_pos[i] - 0.2,选择向上偏移1个单位的0.2。相应的y轴位置是v + 1,以保证标签的位置正确。如此设置标签后,我们便能够在条形图上方看到具体的数值。

最后,我们设置了字体颜色、字体粗细、字体大小等参数,使得标签更加清晰、易读。

小结

在本文中,我们介绍了如何使用Matplotlib来绘制条形图并显示条形图上方的百分比标签。通过本文的学习,我们不仅掌握了Matplotlib的基本绘图方法和Bar函数的参数使用方法,还学会了如何使用plt.text()函数进行文本标注,这通常也用于其他类型的图形。

因此,我们鼓励大家尝试更多的条形图变体和Matplotlib的其他函数,并使用plt.text() 和其他文本函数添加更多标注。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3