介绍
Matplotlib 是一个强大的 Python 库,用于创建静态、动态和交互式可视化。虽然创建基本图表很简单,但对其进行自定义是使你的数据清晰、易于理解且具有视觉吸引力的关键。
在本实验中,你将从一个简单的折线图开始,并逐步对其进行自定义。你将学习如何更改线条颜色、为数据点添加标记、修改线条样式、为图表添加标题以及调整轴限制。
由于本实验环境使用 WebIDE,我们无法在单独的 GUI 窗口中显示图表。相反,我们将使用 plt.savefig() 将每个图表保存为图像文件。然后,你可以在 IDE 中直接查看生成的图像。
让我们开始吧!
使用 plt.plot(color='red') 绘制自定义颜色的线条
在本步骤中,你将学习如何更改图表中线条的颜色。默认情况下,Matplotlib 会按预定义的颜色集循环显示。但是,你可以使用 plt.plot() 函数中的 color 参数轻松指定你选择的颜色。
首先,让我们绘制一个正弦波的基本图表。我们将使用 NumPy 来生成数据点。
在左侧文件浏览器中打开位于 ~/project 目录下的 main.py 文件。用以下代码替换其内容。此代码将绘制一个正弦波并将其颜色设置为红色。
import matplotlib.pyplot as plt
import numpy as np
## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)
## Plot the data with a custom color
plt.plot(x, y, color='red')
## Save the plot to a file
plt.savefig('/home/labex/project/plot_color.png')
print("Plot saved as plot_color.png")
更新 main.py 文件后,请保存它。现在,在 IDE 底部的终端中运行脚本:
python3 main.py
你将在终端中看到以下输出:
Plot saved as plot_color.png
一个名为 plot_color.png 的新文件将出现在 ~/project 目录中。双击它以打开并查看你的第一个自定义图表。你将看到一条红色的正弦波。

使用 plt.plot(marker='o') 添加标记
在本步骤中,你将为数据点添加标记。标记有助于突出显示线上的每个数据点的确切位置,当数据点稀疏时,这会特别有用。
你可以使用 plt.plot() 函数中的 marker 参数来添加标记。有许多可用的标记样式,例如 'o' 表示圆圈,'x' 表示叉号,以及 '*' 表示星号。
让我们修改 main.py 文件,为我们的图表添加圆圈标记。为了保留上一步的进度,我们还将输出文件名更改为 plot_marker.png。
使用以下代码更新 main.py 文件:
import matplotlib.pyplot as plt
import numpy as np
## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)
## Plot the data with a custom color and marker
plt.plot(x, y, color='red', marker='o')
## Save the plot to a new file
plt.savefig('/home/labex/project/plot_marker.png')
print("Plot saved as plot_marker.png")
保存文件并在终端中再次运行脚本:
python3 main.py
终端将显示此输出:
Plot saved as plot_marker.png
现在,在文件浏览器中找到新的 plot_marker.png 文件并双击它。你将看到红色线条的每个数据点上都有了小的圆圈。

使用 plt.plot(linestyle='--') 设置线条样式
在本步骤中,你将学习如何更改线条本身的样式。默认是实线,但你可以将其更改为虚线、点线或其他样式,以便在同一图表上区分多条线,或者仅仅是为了美观。
这是通过 linestyle 参数(或其简写 ls)完成的。常见的样式包括 '--' 表示虚线,':' 表示点线,以及 '-.' 表示点划线。
让我们更新图表以使用虚线。按如下方式修改 main.py 文件。我们还将输出文件名更改为 plot_linestyle.png。
import matplotlib.pyplot as plt
import numpy as np
## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)
## Plot the data with custom color, marker, and line style
plt.plot(x, y, color='red', marker='o', linestyle='--')
## Save the plot to a new file
plt.savefig('/home/labex/project/plot_linestyle.png')
print("Plot saved as plot_linestyle.png")
保存更改并在终端中执行脚本:
python3 main.py
你将看到确认消息:
Plot saved as plot_linestyle.png
打开新创建的 plot_linestyle.png 文件。你会注意到连接标记的线条现在是虚线而不是实线。

使用 plt.title() 添加标题
没有标题的图表可能会令人费解。为你的图表添加一个描述性的标题至关重要,这样观众就能立即理解图表所代表的内容。在 Matplotlib 中,你可以使用 plt.title() 函数来添加标题。
在本步骤中,你将为图表添加标题“Sine Wave”。此函数在保存图形之前调用。
修改你的 main.py 文件以包含 plt.title() 调用。新的输出文件将是 plot_title.png。
import matplotlib.pyplot as plt
import numpy as np
## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)
## Plot the data with customizations
plt.plot(x, y, color='red', marker='o', linestyle='--')
## Add a title to the plot
plt.title('Sine Wave')
## Save the plot to a new file
plt.savefig('/home/labex/project/plot_title.png')
print("Plot saved as plot_title.png")
保存文件并运行脚本:
python3 main.py
输出将是:
Plot saved as plot_title.png
打开 plot_title.png 查看你的图表。它现在应该在顶部显示标题“Sine Wave”。

使用 plt.xlim() 和 plt.ylim() 调整坐标轴范围
有时,你可能希望聚焦于图表的特定区域,或者在数据周围添加一些填充。你可以分别使用 plt.xlim() 和 plt.ylim() 函数来控制 x 轴和 y 轴的范围。
在最后一步中,我们将调整轴以“放大”正弦波的一部分。我们将 x 轴范围设置为 0 到 5,y 轴范围设置为 -1.5 到 1.5。这将为我们的图表提供一些垂直填充。
使用最终版本的代码更新你的 main.py 文件。输出将保存到 plot_final.png。
import matplotlib.pyplot as plt
import numpy as np
## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)
## Plot the data with customizations
plt.plot(x, y, color='red', marker='o', linestyle='--')
## Add a title
plt.title('Sine Wave')
## Adjust the axis limits
plt.xlim(0, 5)
plt.ylim(-1.5, 1.5)
## Save the final plot to a file
plt.savefig('/home/labex/project/plot_final.png')
print("Plot saved as plot_final.png")
保存文件并最后一次运行脚本:
python3 main.py
你将收到最终确认:
Plot saved as plot_final.png
现在,打开 plot_final.png。与之前的图表进行比较。你将看到 x 轴现在结束于 5,并且由于新的 y 轴限制,正弦波的上方和下方有更多空间。

总结
恭喜你完成了本次实验!你已成功学会了如何自定义一个基础的 Matplotlib 折线图,使其更具信息量和视觉吸引力。
在本次实验中,你练习了:
- 使用
plt.plot()中的color参数更改线条颜色。 - 使用
marker参数添加数据点标记。 - 使用
linestyle参数设置线条样式。 - 使用
plt.title()函数添加描述性标题。 - 使用
plt.xlim()和plt.ylim()调整轴范围。
这些是为数据分析和演示创建专业级图表的基本技能。你可以尝试不同的颜色、标记和线条样式,或者使用 plt.xlabel() 和 plt.ylabel() 为 x 轴和 y 轴添加标签,进行进一步的实验。



