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

Matplotlib绘图遇TypeError:DataFrame列名绘图失败求助

解决Matplotlib结合DataFrame绘图时含特殊字符列名触发TypeError的问题

问题根源

你的列名Density_kg/m-3包含/和-这类特殊字符,Matplotlib在通过data参数解析列名时,会尝试将其当作表达式解析,而非直接作为列名字符串读取,最终错误地将列名包装成列表,触发TypeError。

解决方案

方案1:直接提取DataFrame列数据传入绘图函数

跳过Matplotlib的列名解析逻辑,直接从DataFrame中取出对应列的数值传入plt.plot:

import matplotlib.pyplot as plt

plt.plot(mississauga['Density_kg/m-3'], mississauga['Height_m'])
plt.xlabel('Air Density (kg m^-3)', fontsize = 16)
plt.ylabel('Height (m)', fontsize = 16)
plt.title('Air Density by Altitude', fontsize = 16)
plt.show()

方案2:重命名DataFrame列(移除特殊字符)

修改列名去掉特殊符号,之后可以继续使用data参数的方式绘图:

import matplotlib.pyplot as plt

# 重命名含特殊字符的列
mississauga_renamed = mississauga.rename(columns={'Density_kg/m-3': 'Density_kg_m3'})
plt.plot('Density_kg_m3', 'Height_m', data = mississauga_renamed)
plt.xlabel('Air Density (kg m^-3)', fontsize = 16)
plt.ylabel('Height (m)', fontsize = 16)
plt.title('Air Density by Altitude', fontsize = 16)
plt.show()

方案1适合临时绘图场景,无需修改原始数据;方案2适合需要多次使用该列的场景,后续绘图可以保持简洁的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 06:10:09