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

如何按Class类别分组绘制values2与values3的散点图并分析相关性

实现方案

该需求完全可以实现,你可以通过遍历分组后的类别单独生成每个Class对应的散点图,也可以通过分面绘图将所有类别的散点图放在同一画布中方便对比,以下是两种常用实现方式:

方式1:遍历分组逐个生成独立散点图

你已经生成了按Class分组的List1和List2,直接循环遍历索引即可逐个出图:

import matplotlib.pyplot as plt

# 遍历所有车辆类别
for class_type in List1.index:
    values2_data = List1[class_type]
    values3_data = List2[class_type]
    
    # 初始化画布
    plt.figure(figsize=(7, 4))
    # 绘制散点图,alpha设置透明度避免点重叠
    plt.scatter(values2_data, values3_data, alpha=0.6, edgecolor='k')
    # 配置图表标签
    plt.title(f"{class_type}:values2与values3相关性散点图")
    plt.xlabel("values2取值")
    plt.ylabel("values3取值")
    plt.grid(linestyle="--", alpha=0.3)
    # 展示图片,如需保存可替换为 plt.savefig(f"./{class_type}_散点图.png", dpi=200)
    plt.show()

方式2:一键生成分面散点图(无需提前生成List1/List2)

直接基于原始DataFrame使用seaborn的分面绘图能力,所有类别的散点图会放在同一画布的不同子图中,对比更直观:

import matplotlib.pyplot as plt
import seaborn as sns

# col参数指定按Class列分面,col_wrap设置每行展示2个子图
sns.FacetGrid(vehiclesData, col="Class", col_wrap=2, height=3.5)\
    .map(plt.scatter, "values2", "values3", alpha=0.6, edgecolor="k")
# 自动调整子图间距
plt.tight_layout()
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:27:02