Plotly Express绘制3D散点图列名不匹配报错排查
问题根因
你的判断完全准确,报错由CSV分隔符不匹配直接导致:
pd.read_csv()默认以英文逗号,作为列分隔符解析文件- 你的CSV文件实际用分号
;分隔列,导致pandas把整行所有字段识别成1个单列,列名就是拼接后的字符串Samples;FSI;GSI;OSR,自然无法匹配你传入的OSR/GSI/FSI/Samples这些独立列名。
修复方法
修改CSV读取代码,显式指定分隔符参数即可,修正后的完整可运行代码如下:
import pandas as pd import plotly.express as px import plotly.io as pio # 增加sep参数指定分号为列分隔符 df = pd.read_csv( '/Users/alissanicolet./Desktop/QGIS_Thesis/pythongraph.csv', sep=';' ) # 可选验证步骤:打印列名确认解析结果,正常会输出['Samples', 'FSI', 'GSI', 'OSR']四个独立列 print(df.columns) fig = px.scatter_3d( data_frame=df, x='OSR', y='GSI', z='FSI', color="Samples", color_discrete_sequence=['magenta','green','blue'], template='ggplot2', title='Spacematrix of Sample Areas', hover_name='Samples', height=700, ) pio.show(fig)
补充说明
如果运行后仍然存在列解析异常,可以先打开CSV文件确认实际分隔符:大部分欧洲地区导出的CSV默认用分号做列分隔、逗号做小数分隔符,这类文件都需要显式给pd.read_csv()传入sep=';'参数才能正常解析。
内容的提问来源于stack exchange,提问作者miso
相关产品推荐
相关产品推荐

