Python Pandas新手求助:如何基于日期价格数据创建图表?
基于日期-价格数据创建图表的解决方案
1. 调整DataFrame结构
你当前的DataFrame把日期作为列名、价格作为单行数据,这种结构不适合直接绘图。首先需要转置数据,让日期和价格成为独立的列:
import pandas as pd # 转置DataFrame并重置索引,重命名列 data_transposed = data.T.reset_index() data_transposed.columns = ['日期', '价格']
2. 转换日期格式
将字符串类型的日期转换为datetime类型,确保图表的x轴按时间顺序排列:
data_transposed['日期'] = pd.to_datetime(data_transposed['日期'])
3. 绘制折线图(推荐用于时间序列)
使用matplotlib绘制价格走势折线图,这是展示日期-价格数据最直观的方式:
import matplotlib.pyplot as plt # 设置图表大小 plt.figure(figsize=(10, 6)) # 绘制折线,添加标记点 plt.plot(data_transposed['日期'], data_transposed['价格'], marker='o', linestyle='-', color='#1f77b4') # 设置图表标题和坐标轴标签 plt.title('每日价格走势') plt.xlabel('日期') plt.ylabel('价格') # 旋转x轴日期标签,避免重叠 plt.xticks(rotation=45) # 自动调整布局,防止标签被截断 plt.tight_layout() # 显示图表 plt.show()
简化版:用Pandas直接绘图
如果想更简洁,也可以利用Pandas内置的绘图功能,省略手动转置后的部分步骤:
# 转置数据并重命名列,直接调用plot方法 data.T.rename(columns={0: '价格'}).plot(figsize=(10, 6), marker='o', title='每日价格走势') plt.xlabel('日期') plt.ylabel('价格') plt.xticks(rotation=45) plt.tight_layout() plt.show()
内容的提问来源于stack exchange,提问作者linux888
相关产品推荐
相关产品推荐

