You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中绘制资产配置折线图?识别图表并替换X轴为波动率

问题解答

图表名称

你描述的这种以风险(波动率)为X轴、展示不同风险水平下资产配置比例变化的图表,通常被称为资产配置权重-风险折线图。如果你的场景是结合收益与风险的资产组合优化,这类图表也常和*有效前沿(Efficient Frontier)*图表搭配使用,但核心聚焦配置比例变化时,前者是更准确的称呼。

Python(Matplotlib)实现方法

以下是直接用Matplotlib绘制这类图表的代码示例,基于模拟数据演示:

1. 准备数据

先构造不同风险水平下各资产的配置权重数据(实际场景中你可以替换为自己的计算结果):

import pandas as pd
import matplotlib.pyplot as plt

# 模拟数据:波动率(风险)对应股票、债券、现金的配置权重
config_data = {
    '波动率': [0.05, 0.08, 0.12, 0.15, 0.20],
    '股票': [0.2, 0.35, 0.55, 0.7, 0.85],
    '债券': [0.7, 0.55, 0.35, 0.25, 0.1],
    '现金': [0.1, 0.1, 0.1, 0.05, 0.05]
}
df = pd.DataFrame(config_data).set_index('波动率')

2. 绘制折线图

遍历资产列,绘制每条配置权重随风险变化的折线:

plt.figure(figsize=(10, 6))

# 为每个资产绘制折线
for asset in df.columns:
    plt.plot(df.index, df[asset], marker='o', linewidth=2, label=asset)

# 配置图表样式
plt.xlabel('风险(波动率)', fontsize=12)
plt.ylabel('资产配置权重', fontsize=12)
plt.title('不同风险水平下的资产配置变化', fontsize=14)
plt.legend(title='资产类型')
plt.grid(linestyle='--', alpha=0.6)
plt.tight_layout()

plt.show()

补充说明

  • 如果需要展示资产配置的堆叠占比(而非单条折线),可以把plt.plot换成plt.stackplot,实现面积堆叠图,更直观展示整体配置结构。
  • 若要结合收益指标,可添加双Y轴:一侧展示配置权重,另一侧展示对应风险水平下的组合收益。

内容的提问来源于stack exchange,提问作者seahawk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 02:50:30