当前位置:   article > 正文

使用 Python 和 Matplotlib 绘制科学图表:实例演示_马吕斯定律曲线图

马吕斯定律曲线图

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

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

马吕斯定律是光学中的一个重要定律,它描述了光的强度与偏振角度之间的关系。可以使用 Matplotlib 来绘制这一曲线。

首先,准备 cos²(Θ) 的数据,其中 Θ 的取值范围是从 90 度到 0 度。然后,绘制对应的 I 值,这里使用了两组数据来模拟不同条件下的光强度。

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. x = np.cos(np.radians(np.arange(90, -1, -10)))**2
  4. y = [[...], [...]] # 这里填入两组 I 值
'
运行

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

  1. fig, ax = plt.subplots()
  2. ax.scatter(x, y[0], marker='x')
  3. ax.plot(x, y[0], '-')
  4. ax.scatter(x, y[1], marker='+')
  5. ax.plot(x, y[1], '--')
  6. ax.set(xlabel='cos^2(Θ)', ylabel='I', title='I - cos^2(Θ)')
  7. ax.grid()
  8. plt.show()

示例二:极坐标系中的 I-θ 曲线

在极坐标系中绘制图表可以为数据分析提供独特的视角。在这个示例中,本文将绘制极角 θ 与极径 I 的关系。

首先,生成极角数据,然后是对应的极径数据。

  1. x2 = np.radians(np.arange(0, 351, 10))
  2. y2 = [...] # 极径数据

 使用 subplot 函数创建极坐标系,并用 plot 函数绘制曲线。

  1. ax2 = plt.subplot(111, projection='polar')
  2. ax2.plot(x2, y2, 'x', x2, y2, '--')
  3. ax2.grid(True)
  4. plt.show()

这两个示例展示了 Matplotlib 强大的绘图能力,它不仅能处理常规的直角坐标系,还能轻松应对极坐标系的绘图需求。

完整代码

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. # 绘制 I-cos^2(Θ) 曲线,验证马吕斯定律
  4. # 生成 x 轴数据,即 cos^2(Θ),Θ = [90, 80, 70, ,,, ,0]
  5. # Θ 的角度范围是从 90 度到 0 度,间隔为 10 度
  6. x = np.cos(np.radians(np.arange(90, -1, -10)))**2
  7. # 输入 y 轴的数据,即 I
  8. # 包括右旋(Ⅰ)和左旋(Ⅱ)两组数据
  9. y = [[4.19, 11.27, 24.0, 69.4, 114.7, 164.3, 214, 251, 276, 285],
  10. [4.50, 15.76, 41.8, 80.0, 127.7, 175.3, 224, 258, 280, 285]]
  11. # 创建绘图窗口和轴
  12. fig1, ax1 = plt.subplots()
  13. # 绘制右旋数据的散点图和曲线图
  14. ax1.scatter(x, y[0], marker='x') # 右旋数据散点图
  15. ax1.plot(x, y[0], '-') # 右旋数据曲线图
  16. # 绘制左旋数据的散点图和曲线图
  17. ax1.scatter(x, y[1], marker='+') # 左旋数据散点图
  18. ax1.plot(x, y[1], '--') # 左旋数据曲线图
  19. # 设置 x 轴和 y 轴的标签,以及图表的标题
  20. ax1.set(xlabel='cos^2(Θ)', ylabel='I (*e-07 A)', title='I - cos^2(Θ)')
  21. # 显示网格
  22. ax1.grid()
  23. # 保存图表
  24. fig1.savefig('I-cos^2(Θ) 曲线.png')
  25. # 显示图表
  26. plt.show()
  27. # 生成极角 theta = [0, 10, 20, ,,, , 350]
  28. # 极角的范围是从 0 度到 350 度,间隔为 10 度
  29. x2 = np.radians(np.arange(0, 351, 10))
  30. # 输入极径
  31. # 这是极坐标系中的极径数据
  32. y2 = [53.5, 46.8, 44.1, 45.2, 51.0, 58.4, 68.6, 82.1, 92.8,
  33. 100.4, 105.5, 109.1, 109.9, 107.5, 97.4, 83.2, 75.0, 63.4,
  34. 53.0, 47.4, 43.4, 45.2, 49.9, 57.9, 69.4, 80.4, 90.4,
  35. 98.3, 105.6, 109.1, 108.7, 101.1, 94.7, 87.1, 73.1, 62.5]
  36. # 创建极坐标系
  37. ax2 = plt.subplot(111, projection='polar')
  38. # 绘制极坐标系中的散点图和曲线图
  39. ax2.plot(x2, y2, 'x', x2, y2, '--')
  40. # 显示网格
  41. ax2.grid(True)
  42. # 保存图表
  43. plt.savefig('I-θ on polor axis.png')
  44. # 显示图表
  45. plt.show()
'
运行

运行结果

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/811067
推荐阅读
相关标签
  

闽ICP备14008679号

        
cppcmd=keepalive&