使用 Python 和 Matplotlib 绘制科学图表:实例演示

      今天与大家分享如何使用 Python 的 Matplotlib 库来绘制科学图表。在许多科学研究和数据分析的场景中,图形化展示数据是必不可少的一部分。具体来说,通过两个示例来学习这一技能:一是绘制 I-cos²(Θ) 曲线,用于验证物理学中的马吕斯定律;二是在极坐标系中绘制 I-θ 曲线。

示例一:I-cos²(Θ) 曲线的绘制

马吕斯定律是光学中的一个重要定律,它描述了光的强度与偏振角度之间的关系。可以使用 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 值

接下来,用 scatterplot 函数分别绘制散点图和曲线图,并添加必要的标签和标题。

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-θ 曲线

在极坐标系中绘制图表可以为数据分析提供独特的视角。在这个示例中,本文将绘制极角 θ 与极径 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()

运行结果

 

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值