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

如何用Matplotlib在同一窗口绘制15幅(5行3列)散点图?

如何用Matplotlib在同一窗口绘制5行3列的15幅散点图?

我来帮你把那段代码改成适配你需求的版本,其实核心思路很简单——把原来的图像绘制逻辑替换成散点图,同时调整行列布局就行~

首先,你原来的代码是针对4列5行的图像展示,现在我们要改成3列5行(刚好15个图),然后把生成图像的部分换成散点图需要的x、y数据。下面是完整的可运行代码:

import numpy as np
import matplotlib.pyplot as plt

# 设置画布大小,5行的话把高度设大一点,显示更清晰
fig = plt.figure(figsize=(12, 15))
columns = 3  # 改成3列,刚好和5行搭配生成15个图
rows = 5

# 循环创建每个子图
for i in range(1, columns * rows + 1):
    # 生成随机散点数据,你可以把这里换成自己的真实数据集
    x = np.random.randn(100)  # 100个x轴随机值
    y = np.random.randn(100)  # 对应y轴的随机值
    
    # 创建子图:参数顺序是(行数, 列数, 当前子图的索引)
    ax = fig.add_subplot(rows, columns, i)
    # 绘制散点图,还可以自定义颜色、点大小、透明度等
    ax.scatter(x, y, color='darkorange', alpha=0.7, s=30)
    # 给每个子图加标题,方便区分
    ax.set_title(f"散点图 {i}")
    # 可选:添加坐标轴标签,根据你的数据需求调整
    ax.set_xlabel("X 变量")
    ax.set_ylabel("Y 变量")

# 自动调整子图间距,避免标题、标签互相重叠
plt.tight_layout()
# 展示所有图
plt.show()

关键修改点说明:

  • 调整行列参数:把columns=4改成columns=3,确保总数量刚好是15
  • 替换数据生成逻辑:去掉了原来的图像数组生成,换成散点图需要的x、y一维数组
  • 用ax.scatter()替代图像绘制代码,这是Matplotlib绘制散点图的核心函数
  • 加入plt.tight_layout(),解决多子图布局时元素重叠的问题

你只需要把代码里的随机数据替换成你自己的真实数据,就能直接用啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:56:13