gpt4 book ai didi

python - 具有相关交互的 Plotly 按钮 (Python)

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:46 25 4
gpt4 key购买 nike

我正在尝试构建一个 Plotly 3D 散点图,其中包含大量迹线和几组按钮,这些按钮确定迹线的哪个子集可见。我希望按钮以取决于其他按钮状态的方式进行交互。例如,假设按钮 1 和按钮 2 属于一列按钮,而按钮 A 和按钮 B 属于另一列,并且每次只能按下每一列中的一个按钮。我想在按钮 1 处于事件状态时按按钮 A 来显示与在按钮 2 处于事件状态时按按钮 A 不同的轨迹子集。

我在下面提供了一个玩具示例。它具有由三个迹线和两个按钮栏组成的数据集,但每个按钮的行为当前独立于其他按钮。我希望按钮以依赖的方式运行,例如,

  • 按下 1 和 A:显示迹线 1
  • 按下 1 和 B:显示迹线 1 和 2
  • 按下 2 和 A:显示迹线 3
  • 按下 2 和 B:显示所有痕迹
from plotly.offline import plot
import plotly.plotly as py
import plotly.graph_objs as go
import numpy as np

x, y, z = np.random.multivariate_normal(np.array([0,0,0]), np.eye(3), 20).transpose()
trace1 = go.Scatter3d(
x=x,
y=y,
z=z,
mode='markers',
marker=dict(
color='rgb(124, 252, 0)',
size=12,
opacity=0.8
)
)

x2, y2, z2 = np.random.multivariate_normal(np.array([0,0,0]), np.eye(3), 20).transpose()
trace2 = go.Scatter3d(
x=x2,
y=y2,
z=z2,
mode='markers',
marker=dict(
color='rgb(30, 144, 255)',
size=12,
opacity=0.8
)
)

x3, y3, z3 = np.random.multivariate_normal(np.array([0,0,0]), np.eye(3), 20).transpose()
trace3 = go.Scatter3d(
x=x3,
y=y3,
z=z3,
mode='markers',
marker=dict(
color='rgb(220, 20, 60)',
size=12,
opacity=0.8
)
)

data = [trace1, trace2, trace3]

layout = go.Layout(
margin=dict(
l=0,
r=0,
b=0,
t=0
)
)

button_layer_1_height = 1.12
button_layer_2_height = 1.065

updatemenus=list([
dict(
buttons=list([
dict(
args=[{'visible': [True, False, True]}],
label='Button 1',
method='restyle'
),
dict(
args=[{'visible': [True, True, False]}],
label='Button 2',
method='restyle'
),
]),
direction = 'left',
pad = {'r': 10, 't': 10},
showactive = True,
type = 'buttons',
x = 0.1,
xanchor = 'left',
y = button_layer_1_height,
yanchor = 'top'
),
dict(
buttons=list([
dict(
args=[{'visible': [False, True, False]}],
label='Button A',
method='restyle'
),
dict(
args=['visible', [True, False, False]],
label='Button B',
method='restyle'
)
]),
direction = 'left',
pad = {'r': 10, 't': 10},
showactive = True,
type = 'buttons',
x = 0.1,
xanchor = 'left',
y = button_layer_2_height,
yanchor = 'top'
),
])

layout['updatemenus']=updatemenus
fig = go.Figure(data=data, layout=layout)
plot(fig, filename='localtest.html')

最佳答案

我在以下教程中找到了这个问题的答案:https://dash.plot.ly/getting-started-part-2 。我使用单选项而不是按钮构建了一个 Dash 应用程序,结果效果很好。

关于python - 具有相关交互的 Plotly 按钮 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54389430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com