动态更新颜色栏标题 - Plotly
Update dynamically colorbar title - Plotly
我正在尝试根据按钮选择更新颜色条标题,但到目前为止没有成功。
这是我的代码:
import numpy as np
import plotly.graph_objects as go
df = pd.DataFrame(np.array([['Germany', 2, 3], ['United States', 5, 6], ["Italy", 8, 9]]),
columns=['country', 'data_a', 'data_b'])
fig = go.Figure(data=go.Choropleth(
locations = df['country'],
z = df['data_a'],
text = df['country'],
colorscale = 'Teal',
autocolorscale=False,
reversescale=False,
marker_line_color='black',
marker_line_width=0.3,
colorbar_title = '<b>data_a_title</b>',
locationmode ='country names'
))
#update map style
fig.update_layout(
geo=dict(
showframe=False,
showcoastlines=True,
projection_type='equirectangular'
)
)
#dropdown menu
button1 = dict(method = "update",
args = [{'z': [ df["data_a"] ] },
{"colorbar":{"title":"data_a_title"}}],
label = "data_a")
button2 = dict(method = "update",
args = [{'z': [ df["data_b"] ]},
{"colorbar_title":'data_b_title'}],
label = "data_b")
fig.update_layout(width=700,
coloraxis_colorbar_thickness=23,
updatemenus=[dict(y=0.2,
x=1,
xanchor='right',
yanchor='bottom',
active=0,
buttons=[button1, button2])
])
fig.show(config={"displayModeBar": False, "showTips": False})
如你所见,我试过这个:
{"colorbar":{"title":"data_a_title"}}
或
{"colorbar_title":'data_b_title'}
但其中 none 有效。知道我错过了什么吗?
谢谢!
对于 chorpeth,颜色条标题是轨迹的一部分,而不是布局的一部分。因此,您的按钮定义变为:
#dropdown menu
button1 = dict(method = "update",
args = [{'z': [ df["data_a"] ], "colorbar":{"title":{"text":"data_a_title"} }},
{}],
label = "data_a")
button2 = dict(method = "update",
args = [{'z': [ df["data_b"] ], "colorbar":{"title":{"text":"data_b_title"} }},
{}],
label = "data_b")
理解这一点的最简单方法是查看 fig.data
和 fig.layout
以了解 图
的结构
我正在尝试根据按钮选择更新颜色条标题,但到目前为止没有成功。
这是我的代码:
import numpy as np
import plotly.graph_objects as go
df = pd.DataFrame(np.array([['Germany', 2, 3], ['United States', 5, 6], ["Italy", 8, 9]]),
columns=['country', 'data_a', 'data_b'])
fig = go.Figure(data=go.Choropleth(
locations = df['country'],
z = df['data_a'],
text = df['country'],
colorscale = 'Teal',
autocolorscale=False,
reversescale=False,
marker_line_color='black',
marker_line_width=0.3,
colorbar_title = '<b>data_a_title</b>',
locationmode ='country names'
))
#update map style
fig.update_layout(
geo=dict(
showframe=False,
showcoastlines=True,
projection_type='equirectangular'
)
)
#dropdown menu
button1 = dict(method = "update",
args = [{'z': [ df["data_a"] ] },
{"colorbar":{"title":"data_a_title"}}],
label = "data_a")
button2 = dict(method = "update",
args = [{'z': [ df["data_b"] ]},
{"colorbar_title":'data_b_title'}],
label = "data_b")
fig.update_layout(width=700,
coloraxis_colorbar_thickness=23,
updatemenus=[dict(y=0.2,
x=1,
xanchor='right',
yanchor='bottom',
active=0,
buttons=[button1, button2])
])
fig.show(config={"displayModeBar": False, "showTips": False})
如你所见,我试过这个:
{"colorbar":{"title":"data_a_title"}}
或
{"colorbar_title":'data_b_title'}
但其中 none 有效。知道我错过了什么吗?
谢谢!
对于 chorpeth,颜色条标题是轨迹的一部分,而不是布局的一部分。因此,您的按钮定义变为:
#dropdown menu
button1 = dict(method = "update",
args = [{'z': [ df["data_a"] ], "colorbar":{"title":{"text":"data_a_title"} }},
{}],
label = "data_a")
button2 = dict(method = "update",
args = [{'z': [ df["data_b"] ], "colorbar":{"title":{"text":"data_b_title"} }},
{}],
label = "data_b")
理解这一点的最简单方法是查看 fig.data
和 fig.layout
以了解 图