使用Python绘制折线图时出现无效字符串错误,寻求解决方案
问题解决:Matplotlib折线图因列名传参错误报错
你的错误出在plt.plot('Planned Path', 'Sl No')这行代码上——Matplotlib的plt.plot()函数默认会把传入的字符串当作线条样式参数(比如'r--'这种格式),而不是从DataFrame中读取对应列的数据,所以才会出现识别不了'S'的错误。
修复方案
有两种简单的修复方式:
方式1:直接传入DataFrame的列数据
明确指定要绘制的是dataset里的对应列:
import pandas as pd import matplotlib.pyplot as plt # 假设你的dataset已经提前定义好 start = 1 dataset.insert(0, 'Sl No', range(start, start + dataset.shape[0])) # 修正后的绘图代码 plt.plot(dataset['Planned Path'], dataset['Sl No']) plt.xlabel('规划路径') # 替换成你需要的X轴标签 plt.ylabel('序号') # 替换成你需要的Y轴标签 plt.title('规划路径折线图') # 替换成你需要的图表标题 plt.grid(True) # 如果X轴标签重叠,可添加旋转优化显示 plt.xticks(rotation=45) plt.show()
方式2:使用Pandas内置的plot方法(更简洁)
Pandas的DataFrame自带plot方法,能直接关联列名,无需手动提取数据:
import pandas as pd import matplotlib.pyplot as plt start = 1 dataset.insert(0, 'Sl No', range(start, start + dataset.shape[0])) # 用Pandas直接绘图 dataset.plot(x='Planned Path', y='Sl No', kind='line', grid=True) plt.xlabel('规划路径') plt.ylabel('序号') plt.title('规划路径折线图') plt.xticks(rotation=45) plt.show()
补充说明
因为你的X轴是字符串类型,Matplotlib会自动将其作为分类变量,按数据中的顺序排列。如果字符串标签过长导致重叠,plt.xticks(rotation=45)可以旋转标签,提升可读性。
内容的提问来源于stack exchange,提问作者Naveen Bhupathiraju
相关产品推荐
相关产品推荐

