【Python小练习】3D散点图
资产风险收益三维分析
背景
王老师是一名金融工程研究员,需要对多个资产的预期收益、风险(波动率)和与市场的相关性进行综合分析,以便为投资组合优化提供决策依据。
代码实现
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as npplt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文字体为黑体
plt.rcParams['axes.unicode_minus'] = False # 正常显示负号
# 3D资产收益-风险-相关性分析图
# 该代码用于绘制三维散点图,展示不同资产的预期
# 假设有三种资产的数据
assets = ['资产A', '资产B', '资产C']
expected_return = [0.12, 0.08, 0.15] # 预期收益率
volatility = [0.20, 0.10, 0.25] # 波动率(风险)
correlation = [0.8, 0.5, 0.3] # 与市场的相关系数fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')# 绘制三维散点图
ax.scatter(expected_return, volatility, correlation, color='blue')# 添加每个点的标签
for i in range(len(assets)):ax.text(expected_return[i], volatility[i], correlation[i], assets[i], fontsize=12)ax.set_xlabel('预期收益率')
ax.set_ylabel('波动率(风险)')
ax.set_zlabel('与市场相关性')plt.title('资产收益-风险-相关性三维分布')
plt.show()
提示:示例可能不具有现实意义,仅从技术应用上考虑。
参考
mpl_toolkits.mplot3d 提供了一些基本的 3D 绘图工具(散点图、曲面图、线图、网格图)。它并非市面上速度最快、功能最全面的 3D 绘图库,但它集成了 Matplotlib,因此在某些场景下可能是一个更轻量级的解决方案。更多信息,请参阅 mplot3d 教程 mplot3d 官方文档