You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Matplotlib创建带不同标题的subplots?Linear与Polynomial回归分图

解决方案:将线性回归与多项式回归结果分开展示在子图中

没问题!我来帮你把两种回归的结果分别放到独立的子图里,还能给每个子图加上你想要的标题。下面是基于matplotlib和scikit-learn的完整实现示例,你可以直接参考适配自己的代码:

完整代码示例

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures

# 生成模拟数据(你可以替换成自己的数据集)
np.random.seed(42)
X = np.linspace(0, 10, 100).reshape(-1, 1)
y = 2 * X + 3 * X**2 + np.random.normal(0, 10, size=X.shape)

# --- 1. 训练线性回归模型 ---
linear_model = LinearRegression()
linear_model.fit(X, y)
y_pred_linear = linear_model.predict(X)

# --- 2. 训练多项式回归模型 ---
poly_features = PolynomialFeatures(degree=2)
X_poly = poly_features.fit_transform(X)
poly_model = LinearRegression()
poly_model.fit(X_poly, y)
y_pred_poly = poly_model.predict(X_poly)

# --- 3. 创建子图并绘图 ---
# 创建1行2列的子图布局,设置整体尺寸
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 6))

# 绘制线性回归子图
ax1.scatter(X, y, color='lightblue', alpha=0.7, label='Original data')
ax1.plot(X, y_pred_linear, color='darkred', linewidth=2, label='Linear fit')
ax1.set_title('Linear regression', fontsize=14)
ax1.set_xlabel('X', fontsize=12)
ax1.set_ylabel('y', fontsize=12)
ax1.legend()
ax1.grid(True, alpha=0.3)

# 绘制多项式回归子图
ax2.scatter(X, y, color='lightblue', alpha=0.7, label='Original data')
ax2.plot(X, y_pred_poly, color='darkgreen', linewidth=2, label='Polynomial fit (degree=2)')
ax2.set_title('Polynomial regression', fontsize=14)
ax2.set_xlabel('X', fontsize=12)
ax2.set_ylabel('y', fontsize=12)
ax2.legend()
ax2.grid(True, alpha=0.3)

# 自动调整子图间距,避免标题/标签重叠
plt.tight_layout()
plt.show()

关键要点解释

  • 子图创建:用plt.subplots(1, 2)创建1行2列的子图布局,返回的ax1和ax2分别对应两个子图的坐标轴对象,所有绘图操作都要针对这两个对象进行(而不是直接用plt.xxx)。
  • 标题设置:通过ax.set_title()为每个子图单独设置标题,完全符合你的需求。
  • 布局优化:plt.tight_layout()会自动调整子图的间距和尺寸,避免标题、坐标轴标签互相重叠,让整体布局更美观。

如果你的代码里已经有模型训练的部分,只需要把原来的绘图代码拆分成两部分,分别对应ax1和ax2的操作就可以啦!

内容的提问来源于stack exchange,提问作者Aleksandar Beat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:05:54