如何用pandas基于字典绘制带标题的散点图?解决x未定义报错
解决方法
错误原因是你未将字典转换为pandas DataFrame,且x/y变量未定义——pandas的plot方法需要指定DataFrame的列名作为x和y参数,而非未定义的变量。
以下是完整可运行代码:
import pandas as pd import matplotlib.pyplot as plt # 定义原始数据字典 data_dict = {'2022-01-30': 50, '2022-01-31': 152, '2022-02-01': 41} # 将字典转换为带指定列名的DataFrame df = pd.DataFrame(list(data_dict.items()), columns=['Date', 'Quantity']) # 绘制散点图,指定列名、标题与轴标签 df.plot(kind='scatter', x='Date', y='Quantity', title='Daily Quantity Scatter Plot') plt.xlabel('Date') plt.ylabel('Quantity') # 显示图表 plt.show()
关键细节说明:
- 字典转DataFrame时,
list(data_dict.items())会把键值对转为二维列表,再通过columns参数直接指定Date(X轴)和Quantity(Y轴)列名,匹配你的需求。 - 调用
plot时,x和y直接传入列名字符串('Date'/'Quantity'),替代原本未定义的x/y变量。 - 通过
title参数添加图表标题,再用matplotlib.pyplot的xlabel/ylabel明确设置轴显示文本。
如果偏好另一种字典转DataFrame的写法,也可以用:
df = pd.DataFrame.from_dict(data_dict, orient='index', columns=['Quantity']).reset_index().rename(columns={'index': 'Date'})
该写法先将字典键设为索引,再重置索引为Date列,最终效果与上述代码一致。
内容的提问来源于stack exchange,提问作者William Page
相关产品推荐
相关产品推荐

