我正在尝试绘制随着投资组合权重变化而变化的动态投资组合表现
假设一个投资组合有 2 个成分,每个成分的权重为 50%。我想显示一个带有代表组件权重的滑块的投资组合图表。然后,我希望能够滑动权重值并动态更新投资组合图表。
我已经为一个包含一个权重但不知道如何修改超过 1 个权重的投资组合做到了这一点——也许我需要一种不同的方法。
下面的示例将随机 df 替换为 1 列代替我的投资组合 df - 过程应该相同。
就这个例子而言,如果 df 有 2 列 - 我怎样才能让它与控制每个重量的 2 个滑块一起工作?
从 bqplot 导入 DateScale、LinearScale、Axis、Figure、Lines
从 ipywidgets 导入 FloatSlider,VBox
将熊猫导入为 pd
将 numpy 导入为 np
滑块 = FloatSlider(值 = 1,最小值 = 0,最大值 = 1,步长 = .01,描述 = '重量 A')
df = pd.DataFrame(np.random.randint(0,100,size=(100, 1)), columns=list('A'))
x_sc = 线性缩放()
y_sc = 线性缩放()
ax_x = Axis(label='Date', scale=x_sc, grid_lines='solid')
ax_y = Axis(label='Price', scale=y_sc,orientation='vertical', grid_lines='solid')
line = Lines(y=df['A'],x=df.index , scales={'x': x_sc, 'y': y_sc}, colors = ['#FF0000'])
line2 = Lines(y=df['A'],x=df.index , scales={'x': x_sc, 'y': y_sc})
fig = Figure(axes=[ax_x, ax_y], 标记=[line, line2], title='价格图表')
def new_chart(值):
new_y = df[['A']]*slider.value
line.y = new_y
slider.observe(new_chart,'value')
VBox([图,滑块])