优客文库提供全面的范文格式和文档模板,包括申请书、合同、借据、证明、求职信等,助力您快速撰写专业文档。

对比曲线图形比较拟合效果:要求把图形窗口分成四个子图,子图1绘制出原始测量值(描点,后面同理)和一阶多项式拟合后的曲线,子图2绘制出原始测量值和二阶多项式拟合后的曲线;子图3绘制出原始测量值和三阶多项

来自 天津市天津市 的网友 时间: 热度:°C 加入收藏 我要投稿 点赞()
以下是一个示例代码,用于绘制四个子图,分别展示不同阶数的多项式拟合效果:

```python
import numpy as np
import matplotlib.pyplot as plt

# 原始测量值
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
y = np.array([2, 4, 6, 8, 10, 12, 14, 16, 18, 20])

# 一阶多项式拟合
poly1 = np.polyfit(x, y, 1)
poly1_fn = np.poly1d(poly1)

# 二阶多项式拟合
poly2 = np.polyfit(x, y, 2)
poly2_fn = np.poly1d(poly2)

# 三阶多项式拟合
poly3 = np.polyfit(x, y, 3)
poly3_fn = np.poly1d(poly3)

# 四阶多项式拟合
poly4 = np.polyfit(x, y, 4)
poly4_fn = np.poly1d(poly4)

# 绘制四个子图
fig, axs = plt.subplots(2, 2, figsize=(10, 8))

# 子图1:一阶多项式拟合曲线
axs[0, 0].scatter(x, y, label='原始测量值')
axs[0, 0].plot(x, poly1_fn(x), color='red', label='一阶多项式拟合曲线')
axs[0, 0].set_xlabel('时间')
axs[0, 0].set_ylabel('强度')
axs[0, 0].set_title('一阶多项式拟合曲线')
axs[0, 0].legend()

# 子图2:二阶多项式拟合曲线
axs[0, 1].scatter(x, y, label='原始测量值')
axs[0, 1].plot(x, poly2_fn(x), color='green', label='二阶多项式拟合曲线')
axs[0, 1].set_xlabel('时间')
axs[0, 1].set_ylabel('强度')
axs[0, 1].set_title('二阶多项式拟合曲线')
axs[0, 1].legend()

# 子图3:三阶多项式拟合曲线
axs[1, 0].scatter(x, y, label='原始测量值')
axs[1, 0].plot(x, poly3_fn(x), color='blue', label='三阶多项式拟合曲线')
axs[1, 0].set_xlabel('时间')
axs[1, 0].set_ylabel('强度')
axs[1, 0].set_title('三阶多项式拟合曲线')
axs[1, 0].legend()

# 子图4:四阶多项式拟合曲线
axs[1, 1].scatter(x, y, label='原始测量值')
axs[1, 1].plot(x, poly4_fn(x), color='orange', label='四阶多项式拟合曲线')
axs[1, 1].set_xlabel('时间')
axs[1, 1].set_ylabel('强度')
axs[1, 1].set_title('四阶多项式拟合曲线')
axs[1, 1].legend()

# 调整子图之间的间距
plt.tight_layout()

# 显示图形
plt.show()
```

你可以根据自己的实际数据进行修改和调整,代码中的注释会帮助你理解每一步的操作。
221381
领取福利

微信扫码领取福利

微信扫码分享