如何在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
相关产品推荐
相关产品推荐

