如何使用for循环绘制独立散点图并为每个X变量单独添加X轴标签
问题原因
现有代码在循环外预先创建了唯一的画布与绘图轴对象,所有循环内的绘图操作都会复用同一个绘图区域,因此所有散点会叠加在同一张图上。
解决代码
将画布创建逻辑移入循环内部,每次遍历特征时新建独立画布,同时添加对应轴标签即可,推荐直接用scatter方法绘制散点图,代码更简洁:
import matplotlib.pyplot as plt for column in X_data: # 每次循环新建独立画布 plt.figure(figsize=(6,6)) # 绘制散点图:参数顺序为X轴数据、Y轴数据,此处默认特征为X轴,目标变量为Y轴 plt.scatter(X_data[column], y_data, s=3.0) # 添加对应X轴标签为当前特征名 plt.xlabel(f"特征:{column}") # 统一添加Y轴标签 plt.ylabel("目标变量y_data") # 可选:添加图标题 plt.title(f"目标变量与{column}散点关系") # 显示当前独立散点图 plt.show()
补充说明
- 如果你需要保持原有代码的轴映射规则(目标变量为X轴,特征为Y轴),只需将
plt.scatter的两个数据参数交换位置即可:plt.scatter(y_data, X_data[column], s=3.0),同时对应修改轴标签配置。 - 如果需要批量保存图片到本地,可在
plt.show()前添加代码:plt.savefig(f"{column}_散点图.png", dpi=150, bbox_inches="tight")。
内容的提问来源于stack exchange,提问作者CWeeks
相关产品推荐
相关产品推荐

