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

使用Plotly绘制散点矩阵报错:dimensions_0非数据框列名

问题分析与解决

错误原因

  1. 你把特征列转成numpy数组后执行了df = df.reshape(-1),直接把二维特征数组变成了一维数组,此时传给Plotly的是仅含一列(列名默认是0)的结构,自然找不到diffTime这类列名。
  2. color="out"的写法有误:你单独把标签存在out变量里,但Plotly的scatter_matrix需要从传入的data_frame中读取列名,不能直接传变量名。

修正后的代码

import pandas as pd
import plotly.express as px

# 读取数据
dataset = pd.read_csv(r'/Users/Downloads/dataset/datasets/mydatasets/out_4.csv')

# 整合需要的特征列与标签列,生成可视化用DataFrame
vis_df = dataset[["diffTime","diffP","diffS","diffH","diffE","diffA", "labels"]]

features = ["diffTime","diffP","diffS","diffH","diffE","diffA"]

fig = px.scatter_matrix(
    vis_df,  # 传入保留列名的DataFrame
    dimensions=features,
    color="labels"  # 直接引用DataFrame中的标签列名
)
fig.update_traces(diagonal_visible=False)
fig.show()

关键改动说明

  • 放弃将DataFrame转成numpy数组的操作,直接用Pandas DataFrame作为Plotly输入,保留完整列名信息。
  • 将标签列labels和特征列整合到同一个DataFrame中,让color参数可以直接调用列名。
  • 移除破坏数据结构的reshape(-1)操作,保证特征列是二维多列结构,符合scatter_matrix的输入要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:11:10