赞
踩
今天与大家分享如何使用 Python 的 Matplotlib 库来绘制科学图表。在许多科学研究和数据分析的场景中,图形化展示数据是必不可少的一部分。具体来说,通过两个示例来学习这一技能:一是绘制 I-cos²(Θ) 曲线,用于验证物理学中的马吕斯定律;二是在极坐标系中绘制 I-θ 曲线。
马吕斯定律是光学中的一个重要定律,它描述了光的强度与偏振角度之间的关系。可以使用 Matplotlib 来绘制这一曲线。
首先,准备 cos²(Θ) 的数据,其中 Θ 的取值范围是从 90 度到 0 度。然后,绘制对应的 I 值,这里使用了两组数据来模拟不同条件下的光强度。
- import matplotlib.pyplot as plt
- import numpy as np
-
- x = np.cos(np.radians(np.arange(90, -1, -10)))**2
- y = [[...], [...]] # 这里填入两组 I 值
'运行
接下来,用 scatter
和 plot
函数分别绘制散点图和曲线图,并添加必要的标签和标题。
- fig, ax = plt.subplots()
- ax.scatter(x, y[0], marker='x')
- ax.plot(x, y[0], '-')
- ax.scatter(x, y[1], marker='+')
- ax.plot(x, y[1], '--')
- ax.set(xlabel='cos^2(Θ)', ylabel='I', title='I - cos^2(Θ)')
- ax.grid()
- plt.show()
在极坐标系中绘制图表可以为数据分析提供独特的视角。在这个示例中,本文将绘制极角 θ 与极径 I 的关系。
首先,生成极角数据,然后是对应的极径数据。
- x2 = np.radians(np.arange(0, 351, 10))
- y2 = [...] # 极径数据
使用 subplot
函数创建极坐标系,并用 plot
函数绘制曲线。
- ax2 = plt.subplot(111, projection='polar')
- ax2.plot(x2, y2, 'x', x2, y2, '--')
- ax2.grid(True)
- plt.show()
这两个示例展示了 Matplotlib 强大的绘图能力,它不仅能处理常规的直角坐标系,还能轻松应对极坐标系的绘图需求。
完整代码
-
- import matplotlib.pyplot as plt
- import numpy as np
-
- # 绘制 I-cos^2(Θ) 曲线,验证马吕斯定律
- # 生成 x 轴数据,即 cos^2(Θ),Θ = [90, 80, 70, ,,, ,0]
- # Θ 的角度范围是从 90 度到 0 度,间隔为 10 度
- x = np.cos(np.radians(np.arange(90, -1, -10)))**2
-
- # 输入 y 轴的数据,即 I
- # 包括右旋(Ⅰ)和左旋(Ⅱ)两组数据
- y = [[4.19, 11.27, 24.0, 69.4, 114.7, 164.3, 214, 251, 276, 285],
- [4.50, 15.76, 41.8, 80.0, 127.7, 175.3, 224, 258, 280, 285]]
-
- # 创建绘图窗口和轴
- fig1, ax1 = plt.subplots()
- # 绘制右旋数据的散点图和曲线图
- ax1.scatter(x, y[0], marker='x') # 右旋数据散点图
- ax1.plot(x, y[0], '-') # 右旋数据曲线图
- # 绘制左旋数据的散点图和曲线图
- ax1.scatter(x, y[1], marker='+') # 左旋数据散点图
- ax1.plot(x, y[1], '--') # 左旋数据曲线图
- # 设置 x 轴和 y 轴的标签,以及图表的标题
- ax1.set(xlabel='cos^2(Θ)', ylabel='I (*e-07 A)', title='I - cos^2(Θ)')
- # 显示网格
- ax1.grid()
-
- # 保存图表
- fig1.savefig('I-cos^2(Θ) 曲线.png')
- # 显示图表
- plt.show()
-
- # 生成极角 theta = [0, 10, 20, ,,, , 350]
- # 极角的范围是从 0 度到 350 度,间隔为 10 度
- x2 = np.radians(np.arange(0, 351, 10))
-
- # 输入极径
- # 这是极坐标系中的极径数据
- y2 = [53.5, 46.8, 44.1, 45.2, 51.0, 58.4, 68.6, 82.1, 92.8,
- 100.4, 105.5, 109.1, 109.9, 107.5, 97.4, 83.2, 75.0, 63.4,
- 53.0, 47.4, 43.4, 45.2, 49.9, 57.9, 69.4, 80.4, 90.4,
- 98.3, 105.6, 109.1, 108.7, 101.1, 94.7, 87.1, 73.1, 62.5]
-
- # 创建极坐标系
- ax2 = plt.subplot(111, projection='polar')
- # 绘制极坐标系中的散点图和曲线图
- ax2.plot(x2, y2, 'x', x2, y2, '--')
- # 显示网格
- ax2.grid(True)
-
- # 保存图表
- plt.savefig('I-θ on polor axis.png')
- # 显示图表
- plt.show()
'运行
运行结果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。