当前位置:   article > 正文

量化交易入门(十四)Python开发-matplotlib

量化交易入门(十四)Python开发-matplotlib

我来用股票量化数据讲解如何使用Matplotlib库进行数据可视化。Matplotlib是Python中最流行的绘图库,提供了丰富的图表类型和自定义选项。

假设我们有以下股票数据DataFrame df:

  1. Date Open High Low Close Volume
  2. 0 2023-01-03 100.5 101.3 99.8 100.2 1000000
  3. 1 2023-01-04 100.3 100.8 99.5 100.6 1200000
  4. 2 2023-01-05 100.7 101.5 100.1 101.2 1500000
  5. 3 2023-01-06 101.3 102.0 100.5 100.9 1800000
  6. 4 2023-01-09 100.8 101.2 99.9 100.5 1300000
  1. 绘制基本折线图
  1. import matplotlib.pyplot as plt
  2. plt.figure(figsize=(10, 6))
  3. plt.plot(df['Date'], df['Close'])
  4. plt.xlabel('Date')
  5. plt.ylabel('Close Price')
  6. plt.title('Stock Close Price')
  7. plt.xticks(rotation=45)
  8. plt.grid(True)
  9. plt.show()

我们首先创建一个图形对象和一个默认的轴对象。然后用 plot() 函数绘制收盘价折线图。接着设置x轴和y轴的标签,图表标题,x轴刻度的旋转角度,以及显示网格线。最后用 show() 函数显示图表。

  1. 绘制多条折线
  1. plt.figure(figsize=(10, 6))
  2. plt.plot(df['Date'], df['Close'], label='Close')
  3. plt.plot(df['Date'], df['Open'], label='Open')
  4. plt.xlabel('Date')
  5. plt.ylabel('Price')
  6. plt.title('Stock Price')
  7. plt.xticks(rotation=45)
  8. plt.legend()
  9. plt.grid(True)
  10. plt.show()

我们可以在同一个轴对象上绘制多条折线。每次调用 plot() 函数时,传入 label 参数以给出图例名称。然后用 legend() 函数显示图例。

  1. 绘制成交量柱状图
  1. plt.figure(figsize=(10, 6))
  2. plt.bar(df['Date'], df['Volume'], width=0.6)
  3. plt.xlabel('Date')
  4. plt.ylabel('Volume')
  5. plt.title('Stock Volume')
  6. plt.xticks(rotation=45)
  7. plt.grid(True)
  8. plt.show()

我们用 bar() 函数绘制柱状图。width 参数设置柱的宽度。

  1. 绘制价格和成交量的子图
  1. fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 8), sharex=True)
  2. ax1.plot(df['Date'], df['Close'])
  3. ax1.set_ylabel('Close Price')
  4. ax1.grid(True)
  5. ax2.bar(df['Date'], df['Volume'], width=0.6)
  6. ax2.set_xlabel('Date')
  7. ax2.set_ylabel('Volume')
  8. ax2.grid(True)
  9. plt.tight_layout()
  10. plt.show()

我们用 subplots() 函数创建一个包含两个子图的图形对象。2, 1 表示子图的行数和列数,即上下两个子图。sharex=True 表示两个子图共享x轴。然后在第一个子图上绘制收盘价折线图,在第二个子图上绘制成交量柱状图。我们可以用 ax1 和 ax2 对象分别设置两个子图的y轴标签和网格线。最后用 tight_layout() 函数自动调整子图间的间距,并显示图表。

  1. 绘制K线图
  1. from mplfinance.original_flavor import candlestick_ohlc
  2. import matplotlib.dates as mdates
  3. fig, ax = plt.subplots(figsize=(10, 6))
  4. candlestick_ohlc(ax, df[['Open', 'High', 'Low', 'Close']].values, width=0.6, colorup='red', colordown='green')
  5. ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
  6. ax.set_xlabel('Date')
  7. ax.set_ylabel('Price')
  8. ax.set_title('Stock Candlestick Chart')
  9. ax.grid(True)
  10. fig.autofmt_xdate()
  11. plt.show()

K线图是股票价格走势的常用表示方式。这里我们使用Matplotlib的一个扩展库mplfinance来绘制K线图。首先将DataFrame中的开盘价、最高价、最低价、收盘价数据传给 candlestick_ohlc() 函数。colorup 和 colordown 参数设置上涨和下跌K线的颜色。然后设置x轴的日期格式,以及轴标签和图表标题。最后用 autofmt_xdate() 函数自动格式化x轴的日期标签,并显示图表。

  1. 保存图表到文件
plt.savefig('stock_chart.png', dpi=300, bbox_inches='tight')

我们可以用 savefig() 函数将图表保存到文件。dpi 参数设置图片的分辨率,bbox_inches='tight' 表示自动裁剪图片边缘的空白部分。

以上就是用Matplotlib进行量化金融数据可视化的一些常用示例。Matplotlib提供了非常丰富和灵活的绘图功能,可以满足大部分的量化分析需求。建议查阅Matplotlib的官方文档和画廊,学习更多的绘图技巧和自定义选项。同时,也可以探索一些基于Matplotlib的高级绘图库,如Seaborn和Plotly,它们提供了更加美观和交互的图表样式。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/303426?site
推荐阅读
相关标签
  

闽ICP备14008679号