在 Matplotlib 中自定义虚线样式

PythonPythonBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将学习如何在 Matplotlib 中自定义虚线样式。我们将介绍如何使用.Line2D.set_dashes()修改虚线序列,如何使用property_cycle配置虚线样式,以及如何使用~.Line2D.set_dash_capstyle()~.Line2D.set_dash_joinstyle()~.Line2D.set_gapcolor()等相关方法设置虚线的其他属性。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到笔记本标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会及时为你解决问题。

导入必要的库

首先,我们需要导入必要的库。在本实验中,我们将使用 Matplotlib 和 NumPy。

import matplotlib.pyplot as plt
import numpy as np

创建绘图数据

接下来,我们需要创建一些用于绘图的数据。在本实验中,我们将使用正弦函数来创建数据。我们将在 0 到 10 之间生成 500 个均匀分布的点,并使用np.sin()函数计算每个点的正弦值。

x = np.linspace(0, 10, 500)
y = np.sin(x)

设置线宽

我们可以使用plt.rc()函数为绘图中的所有线条设置线宽。在本实验中,我们将把线宽设置为 2.5。

plt.rc('lines', linewidth=2.5)

创建绘图

现在,我们可以使用plt.subplots()函数来创建绘图。我们还将使用ax.plot()函数创建三条线。

fig, ax = plt.subplots()

## 使用 set_dashes() 和 set_capstyle() 修改现有线条的虚线样式。
line1, = ax.plot(x, y, label='Using set_dashes() and set_dash_capstyle()')
line1.set_dashes([2, 2, 10, 2])  ## 2 点长的线,2 点的间隔,10 点长的线,2 点的间隔。
line1.set_dash_capstyle('round')

## 使用 plot(..., dashes=...) 在创建线条时设置虚线样式。
line2, = ax.plot(x, y - 0.2, dashes=[6, 2], label='Using the dashes parameter')

## 使用 plot(..., dashes=..., gapcolor=...) 在创建线条时设置虚线样式和交替颜色。
line3, = ax.plot(x, y - 0.4, dashes=[4, 4], gapcolor='tab:pink',
                 label='Using the dashes and gapcolor parameters')

ax.legend(handlelength=4)
plt.show()

使用.Line2D.set_dashes()修改虚线序列

我们可以使用.Line2D.set_dashes()来修改虚线序列。在这个例子中,我们修改line1的虚线序列,以创建一个由 2 点长的线、2 点的间隔、10 点长的线和 2 点的间隔组成的虚线图案。我们还使用line1.set_dash_capstyle()将端点样式设置为'round'。

line1, = ax.plot(x, y, label='Using set_dashes() and set_dash_capstyle()')
line1.set_dashes([2, 2, 10, 2])  ## 2pt line, 2pt break, 10pt line, 2pt break.
line1.set_dash_capstyle('round')

使用property_cycle设置虚线样式

我们可以使用property_cycle来配置虚线样式。这可以通过使用关键字dashes将虚线序列列表传递给循环器来实现。在本示例中,我们不会使用此方法。

使用相关方法设置虚线的其他属性

虚线的其他属性也可以使用诸如~.Line2D.set_dash_joinstyle()~.Line2D.set_dash_joinstyle()~.Line2D.set_gapcolor()等相关方法来设置。在本示例中,我们将使用dashesgapcolor参数为line3设置虚线序列和交替颜色。

line3, = ax.plot(x, y - 0.4, dashes=[4, 4], gapcolor='tab:pink',
                 label='Using the dashes and gapcolor parameters')

总结

在本实验中,我们学习了如何在 Matplotlib 中自定义虚线样式。我们介绍了如何使用.Line2D.set_dashes()修改虚线序列,如何使用property_cycle配置虚线样式,以及如何使用诸如~.Line2D.set_dash_capstyle()~.Line2D.set_dash_joinstyle()~.Line2D.set_gapcolor()等相关方法设置虚线的其他属性。通过遵循这些步骤,你可以在 Matplotlib 中为你的绘图创建自定义的虚线样式。