📌  相关文章
📜  matplotlib 条形标签 - Python (1)

📅  最后修改于: 2023-12-03 15:32:51.726000             🧑  作者: Mango

Matplotlib 条形标签 - Python

Matplotlib 是一个强大灵活的 Python 画图库,也是科学家和工程师最常使用的数据可视化工具之一。 条形图是 Matplotlib 中最基本的可视化方式之一,其可以用于比较多个项目之间的数据差异。通常情况下,条形图会包含一个轴和一个数值轴。

在 Matplotlib 中,有许多方法可以定制条形图的外观,包括更改条形颜色、尺寸和标签。本文将介绍如何使用 Matplotlib 来创建带有条形标签的条形图。

创建条形图

我们首先需要创建一个基本的条形图,我们可以使用 bar() 函数。该函数需要两个必需参数:条形的位置和高度。

import matplotlib.pyplot as plt

x = ['A', 'B', 'C', 'D', 'E']
y = [10, 24, 36, 40, 17]

plt.bar(x, y)
plt.show()

以上代码将在屏幕上显示以下图形:

Basic bar chart

添加条形标签

为了向条形添加标签,我们可以使用 text() 函数。该函数接受以下参数:

  • x:标签的 x 坐标位置。
  • y:标签的 y 坐标位置。
  • s:要显示的文本。
  • ha:文本的水平对齐方式。
  • va:文本的垂直对齐方式。
import matplotlib.pyplot as plt

x = ['A', 'B', 'C', 'D', 'E']
y = [10, 24, 36, 40, 17]

plt.bar(x, y)

for i in range(len(x)):
    plt.text(x=i, y=y[i]+1, s=y[i])

plt.show()

以上代码将在屏幕上显示以下图形:

Bar chart with labels

自定义标签

除了使用默认标签之外,我们还可以自定义标签。例如,我们可以将标签设置为每个条形的百分比。可以使用以下公式计算每个条形的百分比:

percentage = (value/total_value)*100
import matplotlib.pyplot as plt

x = ['A', 'B', 'C', 'D', 'E']
y = [10, 24, 36, 40, 17]

total = sum(y)
plt.bar(x, y)

for i in range(len(x)):
    percentage = (y[i]/total)*100
    plt.text(x=i, y=y[i]+1, s='{}%'.format(round(percentage)))

plt.show()

以上代码将在屏幕上显示以下图形:

Bar chart with custom labels

倒转条形图

在一些情况下,我们可能希望将条形图倒转为水平方向。为了实现这一目的,我们可以使用 barh() 函数代替 bar() 函数。

import matplotlib.pyplot as plt

x = ['A', 'B', 'C', 'D', 'E']
y = [10, 24, 36, 40, 17]

total = sum(y)
plt.barh(x, y)

for i in range(len(x)):
    percentage = (y[i]/total)*100
    plt.text(y=y[i]+0.1, x=y[i], s='{}%'.format(round(percentage)))

plt.show()

以上代码将在屏幕上显示以下图形:

Horizontal bar chart with custom labels

结论

Matplotlib 可以为创建条形图提供强大的支持。在上述示例中,我们展示了如何使用 Matplotlib 创建带有自定义标签的基本条形图和倒转条形图。Matplotlib 提供了许多其他功能,可以帮助您定制您的可视化,以满足您的需求。