【matplotlib基础】--文本标注

matplotlib,基础,文本,标注 · 浏览次数 : 120

小编点评

**文本** * 用于在图形中添加注释或提供更详细的信息。 * 可以使用 `fontdict` 参数来设置字体属性。 * 例如,以下代码设置图形标题的字体大小和颜色: ```python ax.set_title("标题", fontdict={"fontsize": 25, "color": "r"}) ``` **标注** * 用于为特定数据点或区域提供更详细的信息。 * 可以使用 `xy` 参数指定坐标。 * 可以使用 `xytext` 参数指定文本坐标。 * 例如,以下代码添加一条注释到 y 轴上的第一个值: ```python ax.annotate("第一个值", xy=(0, 89), xytext=(-0.3, 70)) ``` **示例** ```python import numpy as np import matplotlib.pyplot as pltx x = np.linspace(0, 10, 100) y = x*x fig, ax = plt.subplots() # 设置标题 ax.set_title("标题", fontdict={"fontsize": 25, "color": "r"}) # 设置坐标轴标签 ax.set_xlabel("x轴", fontdict={"fontsize": 20, "color": "g"}) ax.set_ylabel("y轴", fontdict={"fontsize": 20, "color": "b"}) # 添加文本 ax.text(2, 60, "f(x) = x*x", fontdict={"fontsize": 15, "color": "k"}) # 添加箭头注释 ax.annotate( "第一个值", xy=(0, 89), xytext=(-0.3, 70), arrowprops={"arrowstyle": "->"} ) # 添加文本注释 ax.annotate( "转折点一", xy=(2, 30), xytext=(1.8, 10), bbox={"boxstyle": "round", "fc": "none", "ec": "g"} ) # 添加箭头注释 ax.annotate( "转折点二", xy=(3, 67), xytext=(3, 85), bbox={"boxstyle": "round", "fc": "lightblue", "ec": "r"} ) # 添加最大值注释 ax.annotate( "最大值", xy=(8, 89), xytext=(6, 85), bbox={"boxstyle": "round", "alpha": 0.1} ) plt.show() ```

正文

Matplotlib 文本和标注可以为数据和图形之间提供额外的信息,帮助观察者更好地理解数据和图形的含义。

文本用于在图形中添加注释或提供更详细的信息,以帮助观察者理解图形的含义。
标注则是一种更加细粒度的文本信息,可以被用来为特定的数据点或区域提供更详细的信息。

本篇通过示例依次介绍文本和标注的常用使用方式。

1. 文本

文本在图形中主要用在标题,坐标轴,图形中的一些说明等等地方。

1.1. 颜色和字体

下面的示例演示了图形中各个部分文本的字体大小和颜色设置的方法:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 100)
y = x*x 

fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])

#设置 标题 的字体和颜色
ax.set_title("标题", fontdict={"fontsize": 25, "color": "r"})

#设置 X轴和Y轴 标签的字体和颜色
ax.set_xlabel("x轴", fontdict={"fontsize": 20,"color": "g"})
ax.set_ylabel("y轴", fontdict={"fontsize": 20,"color": "b"})

#按照坐标位置(2, 60)添加一段文本
ax.text(2, 60, "f(x) = x*x", fontdict={"fontsize": 15,"color": "k"})
ax.plot(x, y, label="sin")
ax.legend()

image.png

需要掌握的部分就是 fontdict 这个参数,这个字典还有其他参数可以控制字体,这里只演示了两个常用的参数:

  1. fontsize:字体大小设置
  2. color:文字颜色

1.2. latex公式

上面的示例中,f(x) = x*x 可以 latex的方式来显示。
latex让能够显示各种复杂的数学公式,让文本看起来和数学书中一样。


x = np.linspace(0, 10, 100)
y = x*x 

fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])

#设置 标题 的字体和颜色
ax.set_title("标题", fontdict={"fontsize": 25, "color": "r"})

#设置 X轴和Y轴 标签的字体和颜色
ax.set_xlabel("x", fontdict={"fontsize": 20,"color": "g"})
ax.set_ylabel("$x^2$", fontdict={"fontsize": 20,"color": "b"})

#按照坐标位置(2, 60)添加一段文本
ax.text(2, 60, "$f(x) = x^2$", fontdict={"fontsize": 15,"color": "k"})
ax.plot(x, y, label="sin")
ax.legend()

image.png

上面将 Y轴的文本图形中间的数学公式改成了 latex 格式。

2. 标注

图形添加标注时,一般包含2个部分,一个指向数据的箭头,一段说明文字。
设置标注的核心参数是:

  1. xy:这是待标注的数据点的坐标
  2. xytext:标注文本的坐标,一般是文本的左上角的点
  3. bbox:文本框的样式字典
  4. arrowprops:箭头的样式字典

下面的示例中,通过设置上面4个参数来演示几种常用的标注:

x = np.array(range(10))
y = np.array([89, 84, 30, 67, 41, 71, 62, 20, 89, 3])

fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
ax.plot(x, y)

ax.annotate(
    "第一个值",
    xy=(0, 89),
    xytext=(-0.3, 70),
    arrowprops={"arrowstyle": "->", "connectionstyle": "arc3,rad=-0.5"},
)

ax.annotate(
    "转折点一",
    xy=(2, 30),
    xytext=(1.8, 10),
    bbox={"boxstyle": "round", "fc": "none", "ec": "g"},
    arrowprops={"arrowstyle": "->"},
)

ax.annotate(
    "转折点二",
    xy=(3, 67),
    xytext=(3, 85),
    bbox={"boxstyle": "round", "fc": "lightblue", "ec": "r"},
    arrowprops={"arrowstyle": "fancy"},
)

ax.annotate(
    "最大值",
    xy=(8, 89),
    xytext=(6, 85),
    bbox={"boxstyle": "round", "alpha":0.1},
    arrowprops={"arrowstyle": "wedge,tail_width=0.8", "alpha":0.1},
)

image.png

  1. 第一个值:设置了箭头的弯曲度
  2. 转折点一:设置了边框
  3. 转折点二:设置了边框和背景色,同时设置了另一种箭头样式
  4. 最大值:设置了边框和另一种箭头的透明度。

3. 总结

在使用 Matplotlib 进行数据可视化时,合理使用文本和标注可以大大提高图形的可读性和易懂性,帮助观察者更好地理解数据和图形的含义。

但是,分析结果中是最重要的还是图形和数据,文本和标注不宜过度添加,也不能太花哨,以致喧宾夺主,本末倒置。

与【matplotlib基础】--文本标注相似的内容:

【matplotlib基础】--文本标注

Matplotlib 文本和标注可以为数据和图形之间提供额外的信息,帮助观察者更好地理解数据和图形的含义。 文本用于在图形中添加注释或提供更详细的信息,以帮助观察者理解图形的含义。标注则是一种更加细粒度的文本信息,可以被用来为特定的数据点或区域提供更详细的信息。 本篇通过示例依次介绍文本和标注的常用

【matplotlib基础】--动画

matplotlib的动画一直是一个强大但使用频率不高的功能,究其原因,一方面展示动画需要一定的媒介,没有图形和文字展示方便;二来大家更关心的是分析结果的最终图表,图表的动态展示则没有那么重要。 不过,随着短视频的兴起,在短视频平台上展示动画变得非常容易,所以,我们发现有越来越多的数据分析动画(比如

算法金 | 我最常用的两个数据可视化软件,强烈推荐

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 抱个拳,送个礼 预警:今天文章的描述可能会让你有点别扭;如感到不适,请及时停止 在我行走江湖的行囊中,有两件利器,tableau与matplotlib,它们足以让我应对各种数据可视化的较

【matplotlib基础】--子图

使用Matplotlib对分析结果可视化时,比较各类分析结果是常见的场景。在这类场景之下,将多个分析结果绘制在一张图上,可以帮助用户方便地组合和分析多个数据集,提高数据可视化的效率和准确性。 本篇介绍Matplotlib绘制子图的常用方式和技巧。 1. 添加子图的方式 添加子图主要有两种方式,一种是

【matplotlib基础】--画布

Matplotlib 库是一个用于数据可视化和绘图的 Python 库。它提供了大量的函数和类,可以帮助用户轻松地创建各种类型的图表,包括直方图、箱形图、散点图、饼图、条形图和密度图等。 使用 Matplotlib 的过程中,遇到的难点并不在于绘制各类的图形,因为每种图形都有其对应的API。难点在于

【matplotlib基础】--坐标轴

Matplotlib的坐标轴是用于在绘图中表示数据的位置的工具。 坐标轴是图像中的水平和垂直线,它们通常表示为 x 轴和 y 轴。坐标轴的作用是帮助观察者了解图像中数据的位置和大小,通常标有数字或标签,以指示特定的值在图像中的位置。 1. 坐标轴范围 Matplotlib绘制图形时,会自动根据X,Y

【matplotlib基础】--刻度

Matplotlib中刻度是用于在绘图中表示数据大小的工具。 刻度是坐标轴上的数字或标签,用于指示数据的大小或值,通常以整数或小数表示,具体取决于坐标轴的类型和限制。 1. 主次刻度 默认的绘制时,坐标轴只有默认的主要刻度,如下所示: from matplotlib.ticker import Mu

【matplotlib基础】--图例

Matplotlib 中的图例是帮助观察者理解图像数据的重要工具。图例通常包含在图像中,用于解释不同的颜色、形状、标签和其他元素。 1. 主要参数 当不设置图例的参数时,默认的图例是这样的。 import numpy as np import matplotlib.pyplot as plt x =

【matplotlib基础】--绘图配置

Matplotlib 提供了大量配置参数,这些参数可以但不限于让我们从整体上调整通过 Matplotlib 绘制的图形样式,这里面的参数还有很多是功能性的,和其他工具结合时需要用的配置。 通过plt.rcParams,可以查看所有的配置信息: import matplotlib.pyplot as

【matplotlib基础】--样式表

Matplotlib库 由于诞生的比较早,所以其默认的显示样式很难符合现在的审美,这也是它经常为人诟病的地方。 不过,经过版本更迭之后,现在 Matplotlib 已经内置了很多样式表,通过使用不同的样式表,可以整体改变绘制图形的风格,不用再调整一个个显示参数。 1. 样式表的使用 1.1. 所有内