Python模块学习之Matplotlib(简单绘图)
发布日期:2021-05-14 21:06:25 浏览次数:15 分类:精选文章

本文共 1998 字,大约阅读时间需要 6 分钟。

掌握图表处理工具 Matplotlib -.techbrocode

在学习前辈的代码时,发现她使用了 matplotlib 库进行数据处理和图表制作。这让我决定深入学习此库,以便更好地理解她的代码。以下是学习过程的一些要点:

1. 导入 matplotlib 模块

为了开始使用 matplotlib,我们首先需要导入该库。通常使用 from matplotlib import pyplot as plt,这样可以直接使用 plt 来调用函数,避免了书写长名称。

2. 准备数据

接下来是数据准备阶段。我们需要生成适合绘图的数据。以下是常用的方法:

  • 使用 numpy 生成等差数列:x = np.linspace(0, 10, 200)
  • 生成与 x 相同数量的零向量:a = np.zeros_like(x)
  • 计算与 x 相关联的数据:y = x ** 0.5

这些步骤确保了数据的结构便于绘制图表。

3. 绘制简单图表

调用 plt.figure() 创建一个图表窗口,然后使用 plt.plot() 绘制数据。例如:

plt.figure(figsize=(6, 4))  # 设置图表尺寸
plt.plot(x, y, 'g--') # 绿色虚线
plt.plot(x, x-1, 'k') # 黑色实线
plt.plot(x, a, 'b-') # 蓝色虚线
plt.savefig("plot.png") # 保存图表

这样可以生成一个简单的折线图,分别显示 x、x-1 和 x 的值。

4. 添加图例

为了清晰展示多条曲线,可以在图表中添加图例。使用 plt.plot() 时设置 label,随后使用 plt.legend() 显示图例。例如:

x = np.linspace(0, 10, 200)
for n in range(2, 5):
y = x * n
plt.plot(x, y, label="x*"+str(n))
plt.legend(loc="best") # 图例位置,可自定义

这样可以在图表右侧添加一个图例,标注每个曲线的意义。

5. 创建子图

需要在同一个图表中同时展示多个数据时,可以使用 fig.add_subplot() 生成子图。例如:

fig = plt.figure(figsize=(12, 6))
sub1 = fig.add_subplot(121) # 1行2列中的第一个子图
sub2 = fig.add_subplot(122) # 另一个子图

每个子图可以独立设置绘图参数和标题,如标签和范围。

6. 添加注释

在复杂图表中,添加注释可以帮助更清晰地传达信息。使用 ax.annotate() 函数可以添加注释,例如:

ax.annotate("Δ Hedge",  
xy=(100, 0),
xytext=(110, -10),
arrowprops=dict(headwidth=3, width=0.5, facecolor="black", shrink=0.05))

通过设置 xy 指向箭头的位置,xytext 设置注释文字的位置,以及 arrowprops管理箭头的样式,确保注释准确且符合视觉效果。

7. 绘制三维图形

要绘制三维图形,需要使用 mplot3d 库。以下是一个简单的三维面图的例子:

x, y = np.mgrid[-5:5:1j, -5:5:1j]
z = x**2 + y**2
fig = plt.figure(figsize=(8, 6))
ax = plt.axes(projection='3d')
surf = ax.plot_surface(x, y, z, cmap='coolwarm', linewidth=0)
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.title('3D plot of z = x² + y²')
plt.show()

这样可以生成一个三维的表面图形,展示数据随 x 和 y 变化的变化情况。

fig.add_subplot() 的作用

fig.add_subplot() 用于将图表分割为多个子图,括号中的数字对应子图的数目和排列方式。例如,121 表示 1 行 2 列的网格中的第一个子图,122 则是第二个子图。

总结

通过以上步骤,可以领略地掌握 matplotlib 的基础操作,包括导入、数据准备、绘图、添加图例、子图布局以及注释和三维图形绘制。对于实际应用,可以根据需求调整代码,展开其他功能如颜色映射、更复杂的数据可视化等,提升工作效率和结果展示效果。

上一篇:Python模块学习之optparse
下一篇:全国计算机等级考试二级教程——Python语言程序设计(2018年版)课后习题参考答案汇总

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月09日 23时52分56秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章