QuantStats · quantstats.plots

QuantStats可视化:17种绩效图(快照/回撤/月度热力图)

quantstats.plots 提供约 17 种绘图:snapshot 综合快照、drawdown 回撤、monthly_heatmap 月度热力图、rolling_beta/sharpe/sortino/volatility 滚动指标、distribution/histogram 分布等,帮你可视化绩效结构。

snapshot
drawdown
monthly_heatmap
rolling_beta

QuantStats plots 绘图分类示意;基于官方 README,非实测图表。

Plot list

17 种绘图清单(按分析目的)

quantstats.plots 的完整方法列表可用 [f for f in dir(qs.plots) if f[0] != '_'] 查看;以下按展示内容与使用场景展开,具体以官方 README 为准。

绘图方法展示内容使用场景
综合快照qs.plots.snapshot(stock)净值曲线 + 回撤 + 核心指标总览快速了解策略整体表现,作为第一张图
回撤qs.plots.drawdown(stock)历史回撤水下曲线评估策略的亏损深度与修复时间
回撤区间qs.plots.drawdowns_periods(stock)标注每次回撤的起止区间定位哪些阶段发生了显著回撤
月度热力图qs.plots.monthly_heatmap(stock)按年月排列的收益热力矩阵识别季节性/哪些月份赚或亏
年度收益qs.plots.yearly_returns(stock)各年度收益率柱状比较不同年份的绩效强弱
滚动 betaqs.plots.rolling_beta(stock, benchmark)相对基准的滚动敏感度曲线观察策略对市场/基准的暴露是否漂移
滚动夏普/索提诺/波动qs.plots.rolling_sharpe / rolling_sortino / rolling_volatility风险调整收益与波动的时间序列评估绩效是否稳定,避免只看单点指标
收益分布qs.plots.distribution(stock)收益率的分布曲线判断收益是否正态、尾部是否肥厚
直方图qs.plots.histogram(stock)收益率频数直方图直观查看收益集中在哪些区间
收益/对数收益qs.plots.returns / log_returns / daily_returns累计收益、对数收益、日收益曲线查看收益的时间演化与日度波动
蒙特卡洛图qs.plots.montecarlo / montecarlo_distribution模拟路径与模拟分布可视化风险的概率分布(详见蒙特卡洛页)
Steps

绘图分步用法

1. 导入并扩展 pandas:import quantstats as qs; qs.extend_pandas() —— 扩展后可 stock.plot_snapshot() 直接调用。

2. 获取收益序列:stock = qs.utils.download_returns('META') —— 或传入你自己的日/周/月收益率 Series。

3. 画综合快照:qs.plots.snapshot(stock, title='Meta Performance', show=True) —— 生成净值+回撤+指标总览图。

4. 画回撤与热力图:qs.plots.drawdown(stock)qs.plots.monthly_heatmap(stock) —— 分别看亏损深度与月度分布。

Categories

绘图分类与各自的分析目的

分类包含绘图分析目的
走势类snapshot / returns / log_returns / daily_returns / earnings看净值与收益如何随时间累积、日度如何波动
回撤类drawdown / drawdowns_periods量化亏损深度与回撤发生的时间区间
分布类distribution / histogram检查收益分布形态与尾部风险
滚动类rolling_beta / rolling_sharpe / rolling_sortino / rolling_volatility看风险调整收益与基准暴露是否随市场漂移
周期/汇总类monthly_heatmap / yearly_returns看月度/年度表现,识别季节性与强弱年份
蒙特卡洛类montecarlo / montecarlo_distribution用模拟分布做概率化风险分析
Plotly

交互图(可选依赖)

1. 安装可选依赖:pip install plotly>=5.0 —— plotly 为可选项,不装不影响其他绘图。

2. 转交互图:qs.plots.to_plotly() —— 把当前静态图转成可缩放/悬停的 Plotly 图。

3. 适用场景:需要交互式查看数据点、嵌入网页或 Notebook 展示时使用。

注意:plotly 属可选依赖,是否安装、以及 to_plotly() 的具体用法,以官方 README 为准。
Scenarios

适用场景

看净值与回撤

用 snapshot + drawdown 组合,先看整体净值走势,再定位最大回撤出现在哪个阶段、跌了多深,是复盘策略的第一组图。

看月度与年度表现

monthly_heatmap 一眼看清哪些月份赚钱/亏损,yearly_returns 比较各年强弱,帮助识别策略的季节性或某年失效。

看滚动稳定性

rolling_sharpe/sortino 观察风险调整收益是否随时间稳定,rolling_beta 看基准暴露是否漂移,避免被单点指标误导。

FAQ

常见问题

QuantStats 能画哪些图?

约 17 种:snapshot、drawdown、monthly_heatmap、rolling_beta/sharpe/sortino/volatility、distribution、histogram、returns、yearly_returns、montecarlo 等,完整列表以 dir(qs.plots) 与官方 README 为准。

图能交互吗?

安装可选依赖 plotly≥5.0 后,可用 qs.plots.to_plotly() 转为交互式 Plotly 图;未安装 plotly 不影响静态图功能,具体以官方 README 为准。

图能保存吗?

可用 savefig 参数控制保存;部分图(如 monthly_heatmap)在保存时可能仍会弹出显示,属官方 README Known Issues 记录的已知问题,以官方文档为准。

和 EasyClaw 的技术分析图有什么区别?

EasyClaw 的 stock-technical-mastery 技能画的是 A股 K 线/技术指标图(MACD/RSI/布林带),面向 A股技术分析;QuantStats 画的是任意收益序列的绩效图(回撤/热力图/滚动指标)。两者市场与任务不同,且 QuantStats 与 EasyClaw 无已证实集成。

图的数据能用于实盘吗?

不能。图仅可视化历史收益序列,不构成收益保证或投资建议;实盘需自行核验数据与风险。

看完图,看基准对比

用 benchmark 参数把策略与基准对比,得到相对绩效。