CodeGym /课程 /Python SELF ZH /设置标签、图例和轴以改进图表的可读性

设置标签、图例和轴以改进图表的可读性

Python SELF ZH
第 42 级 , 课程 0
可用

1. 为图表添加注释的重要性

为什么为图表添加标签、图例和注释很重要

今天我们将讨论数据可视化中一个非常重要的部分——注释。它就像电视机的信号接收器:没有它,硬件再齐全,看起来也会很费劲,因为画面不总是清晰的。标签、图例和注释有时候就是让数据“鲜活起来”的关键,它们让数据用人类能懂的语言“说话”。

你可能会问:标签和图例真的有那么重要吗?答案很简单:它们就像图表的盐和胡椒。没有它们,你的图表会变得难以阅读,数据的意义可能会被掩盖。通过注释,我们为图表赋予额外的意义,使其更加直观易懂。

标签和图例可以帮助观众快速理解他们所看到的内容。想象一下,如果你拿到一张没有任何标识的藏宝图,然后被直接要求找出口,你可能会抓狂吧?没有标签的图表也是一样的。我们应该帮助观众,而不是让他们的生活更复杂。

那么,让我们更详细地探讨如何通过 Python 和 Matplotlib 向你的图表中添加注释的“魔法”吧!准备好了吗?那我们开始吧!

2. 轴标签

使用 xlabel, ylabel 和 title 设置轴标签

第一步就是给轴命名。这个过程简单得像 1+1。我们可以用 xlabel()ylabel() 为 X 和 Y 轴添加标签。而为了给图表添加标题,我们可以用 title()。这些函数能让图表更加有结构,易于理解。来看一个简单的例子:

Python

import matplotlib.pyplot as plt

# 数据
x = [0, 1, 2, 3, 4, 5]
y = [0, 1, 4, 9, 16, 25]

# 创建图表
plt.plot(x, y, color='blue')

# 添加标签
plt.xlabel('时间 (小时)', color='red')
plt.ylabel('距离 (公里)', color='green')
plt.title('随着时间增长的距离', color='gold')

# 展示图表
plt.show()

还可以用你喜欢的颜色来装点文本和图表:

调整标签的字体和大小

为了让图表更吸引人,你可以调整标签的字体大小、颜色和样式。在 Matplotlib 中,可以通过参数 fontsizefontweightcolor 等来实现。

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]

plt.plot(x, y)

# 调整标题和标签带参数的样式
plt.title("示例图", fontsize=16, fontweight="bold", color="navy")
plt.xlabel("X值", fontsize=12, color="darkred")
plt.ylabel("Y值", fontsize=12, color="darkred")

plt.show()

在这个例子中:

  • fontsize 设置字体大小。
  • fontweight="bold" 使文本加粗。
  • color 改变文本颜色。

3. 显示 "图例"

用 legend() 函数添加和设置图例

图例不仅仅是传说或故事,它还是图表中的重要工具。它解释了图表中的线条或柱状图所代表的内容,并区分不同的数据系列。Matplotlib 让这件事情变得非常简单。下面是如何为图表添加图例的示例:

Python

# 数据
x = [0, 1, 2, 3, 4, 5]
y1 = [0, 1, 4, 9, 16, 25]
y2 = [0, 1, 2, 3, 4, 5]

# 创建图表
plt.plot(x, y1, label='平方数')
plt.plot(x, y2, label='原值')

# 添加标签
plt.xlabel('时间 (小时)')
plt.ylabel('距离 (公里)')
plt.title('函数对比')

# 添加图例
plt.legend(loc='upper left')

# 展示图表
plt.show()

调用 legend() 会在你指定的位置添加图例。参数 loc 可以替换成 'best',让 Python 自动选择合适的位置(是的,人工智能也参与了)。

图例的位置

你可以用参数 loc 修改图例的位置。例如:

  • loc="upper right" — 右上角(默认)。
  • loc="upper left" — 左上角。
  • loc="lower right" — 右下角。
  • loc="center" — 居中。
Python

plt.legend(loc="upper left")

设置图例的大小和颜色

你可以用参数 fontsizefacecoloredgecolor 来调整图例的字体大小和颜色。

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [10, 15, 20, 25, 30]
y2 = [5, 10, 15, 20, 25]

plt.plot(x, y1, label="线1", color="blue")
plt.plot(x, y2, label="线2", color="green")

plt.title("带有可自定义图例的图")
plt.xlabel("X坐标")
plt.ylabel("Y坐标")

# 设置图例
plt.legend(loc="upper left", fontsize=10, facecolor="lightgray", edgecolor="black")

plt.show()

4. 格式化轴

Matplotlib 允许你设置轴的刻度、标签和值的范围,这对于改善图表的可读性非常有用。

更改轴的范围

使用函数 xlim()ylim(),你可以设置轴的最小值和最大值。

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]

plt.plot(x, y)
plt.xlabel("X坐标")
plt.ylabel("Y坐标")
plt.xlim(0, 6)  # X轴范围从0到6
plt.ylim(5, 35)  # Y轴范围从5到35

plt.show()

设置刻度间隔

通过函数 xticks()yticks(),你可以为轴定义自定义的刻度。

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]

plt.plot(x, y)
plt.xlabel("X坐标")
plt.ylabel("Y坐标")

# 设置X轴的刻度标签
plt.xticks([1, 2, 3, 4, 5], ["一", "二", "三", "四", "五"])
plt.show()

在图表中添加网格

网格可以帮助更好地参考图表上的值,尤其是当数据有很多点或者值时。

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]

plt.plot(x, y)
plt.xlabel("X坐标")
plt.ylabel("Y坐标")
plt.grid(True)  # 添加网格

plt.show()

使用 plt.grid(True) 添加标准网格。你也可以通过设置参数 colorlinestylelinewidth 来调整网格的样式。

Python

plt.grid(color="gray", linestyle="--", linewidth=0.5)

5. 在图表上添加注释

注释允许你突显图表中的重要点或者加入额外的说明。annotate() 方法可以在图表上的某个特定点添加文本。

添加注释

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]

plt.plot(x, y)
plt.xlabel("X坐标")
plt.ylabel("Y坐标")

# 添加注释
plt.annotate("最大值", xy=(5, 30), xytext=(3, 30),
             arrowprops=dict(facecolor="black", shrink=0.05))

plt.show()

在这个例子中:

  • xy=(5, 30) 表明我们注释的点的坐标。
  • xytext=(3, 30) 表示注释文本的位置。
  • arrowprops 添加箭头,指向我们标注的点。

6. 图表改进实例

实践时间到!我们来看看如何通过添加注释改进图表。

假设我们有一个图表,显示了两个不同产品随月份增长的销售额。我们希望让它更容易理解,并添加必要的注释。

Python

import matplotlib.pyplot as plt

# 月份和销售额
months = ['一月', '二月', '三月', '四月', '五月', '六月']
sales_product1 = [100, 120, 130, 150, 170, 190]
sales_product2 = [90, 110, 115, 140, 165, 180]

# 绘制图表
plt.plot(months, sales_product1, marker='o', label='产品1')
plt.plot(months, sales_product2, marker='s', label='产品2')

# 添加注释
plt.xlabel('月份')
plt.ylabel('销售量 (个)')
plt.title('按产品的销售增长')
plt.legend(loc='upper left')

# 注释设置
for i, txt in enumerate(sales_product1):
    plt.annotate(txt, (months[i], sales_product1[i]), textcoords="offset points", xytext=(0,10), ha='center')

for i, txt in enumerate(sales_product2):
    plt.annotate(txt, (months[i], sales_product2[i]), textcoords="offset points", xytext=(0,10), ha='center')

# 展示图表
plt.show()

嘿,我们在每个数据点上方添加了小而醒目的数字!这样的注释可以在分析大量数据时发挥重要作用,尤其是在每一个数值都非常关键的情况下。

好啦,看起来我们掌握了如何使用 Matplotlib 注释图表的技能。这些技能在制作报告和呈现数据时尤其有用,特别是当每句话都比成千上万个数据点更重要时。加油,让我们用图表、注释和数据来改变世界吧!

1
任务
Python SELF ZH, 第 42 级, 课程 0
已锁定
基础图表注解
基础图表注解
2
任务
Python SELF ZH, 第 42 级, 课程 0
已锁定
添加图例和调整坐标轴
添加图例和调整坐标轴
3
任务
Python SELF ZH, 第 42 级, 课程 0
已锁定
高级图表设置
高级图表设置
4
任务
Python SELF ZH, 第 42 级, 课程 0
已锁定
注释和图表风格的实际应用
注释和图表风格的实际应用
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION