Python如何在Y轴绘制数值以生成X轴为时间序列的金融价格图表
15分钟重采样金融价格序列图实现方案
你可以通过Python数据可视化工具快速实现X轴为时间序列、Y轴为LTP(最后成交价)的图表效果,具体操作步骤如下:
环境准备
先安装所需的依赖库:pip install pandas matplotlib
数据预处理
首先读取你本地的CSV数据,完成格式转换:
import pandas as pd import matplotlib.pyplot as plt import matplotlib.dates as mdates # 读取本地存储的csv数据 df = pd.read_csv("security_chart_WIPRO-EQ.csv") # 将时间列转换为datetime格式,可根据你实际的列名调整 df["datetime"] = pd.to_datetime(df["datetime"]) # 设置时间列为索引,方便后续时间轴渲染 df = df.set_index("datetime") # 确保最后成交价列为数值格式 df["LTP"] = df["LTP"].astype(float)
图表绘制
根据你的需求配置图表样式,可灵活调整刻度间隔、颜色、大小等参数:
# 初始化画布,可自定义尺寸和分辨率 plt.figure(figsize=(15, 8), dpi=120) # 绘制价格走势线 plt.plot(df.index, df["LTP"], color="#003366", linewidth=1.2, label="最后成交价(LTP)") # 配置X轴时间刻度,避免标签重叠 ax = plt.gca() ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m-%d %H:%M")) # 每2小时显示一个刻度,可根据你的数据时间跨度调整间隔 ax.xaxis.set_major_locator(mdates.HourLocator(interval=2)) plt.xticks(rotation=45, ha="right") # 配置图表文本信息 plt.title("WIPRO-EQ 15分钟周期价格走势", fontsize=16, pad=20) plt.xlabel("时间", fontsize=12) plt.ylabel("价格", fontsize=12) # 添加辅助元素 plt.grid(alpha=0.3, linestyle="--") plt.legend() # 自动调整布局避免内容被截断 plt.tight_layout() # 展示图表,也可通过plt.savefig("price_chart.png")导出为本地图片 plt.show()
可选优化方案
- 如果你需要实现蜡烛图效果,可以安装
mplfinance库,聚合15分钟周期的开盘价、最高价、最低价、收盘价后直接调用库的绘图方法即可 - 如果你需要交互式操作(缩放、悬停查看单条数据详情),可以改用
plotly库实现,代码逻辑和上述方案基本一致
内容的提问来源于stack exchange,提问作者Kamal
相关产品推荐
相关产品推荐

