
本文共 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**2fig = 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 的基础操作,包括导入、数据准备、绘图、添加图例、子图布局以及注释和三维图形绘制。对于实际应用,可以根据需求调整代码,展开其他功能如颜色映射、更复杂的数据可视化等,提升工作效率和结果展示效果。
发表评论
最新留言
关于作者
