在 Python 中的 Plotly 散点图中使用按钮切换网格
Toggling Grid with Buttons in a Plotly Scatter graph in Python
我正在尝试在 Plotly 中制作一个散点图,其中包含一个按钮,可以在现场切换 X 和 Y 网格线。我正在使用这段代码,但是当我点击按钮时,网格线没有任何反应。
buttons = [dict (method='update', label="Grid ON", args=[{'xaxes' : {'grid' : {'showgrid': True}}}]),
dict (method='update', label="Grid OFF", args=[{'xaxes' : {'grid' : {'showgrid': False}}}] ),
]
fig.update_layout(
updatemenus=[{'buttons':buttons}]
).update_xaxes(showgrid=True, gridwidth=2, gridcolor='LightPink',
tickmode='linear',
tick0 = 0,
dtick = 60,
range = [0, 2500]
).update_yaxes(showgrid=True, gridwidth=2, gridcolor='LightPink',
# tickmode='linear',
# tick0=0,
dtick=0.1,
)
- 主要问题是您使用了错误的方法。应该是relayout
- 存在一些微妙的问题,其中更多的只是可见性需要更新
- 我总是喜欢做一个列表理解来构建updatemenus结构以避免copy-paste类似代码
import plotly.express as px
import numpy as np
fig = px.scatter(x=np.linspace(1, 2500, 20), y=np.random.uniform(0, 1, 20))
buttons = [
{
"method": "relayout",
"label": l,
"args": [
{
"xaxis": {
"showgrid": s,
"gridcolor": "LightPink",
"dtick": 60,
"tick0": 0,
},
"yaxis": {"showgrid": s, "gridcolor": "LightPink", "dtick": 0.1},
}
],
}
for l, s in [("Grid ON", True), ("Grid OFF", False)]
]
fig.update_layout(updatemenus=[{"buttons": buttons}]).update_xaxes(
# showgrid=True,
# gridwidth=2,
gridcolor="LightPink",
# tickmode="linear",
tick0=0,
dtick=60,
range=[0, 2500],
).update_yaxes(
# showgrid=True,
# gridwidth=2,
gridcolor="LightPink",
# # tickmode='linear',
# # tick0=0,
dtick=0.1,
)
我正在尝试在 Plotly 中制作一个散点图,其中包含一个按钮,可以在现场切换 X 和 Y 网格线。我正在使用这段代码,但是当我点击按钮时,网格线没有任何反应。
buttons = [dict (method='update', label="Grid ON", args=[{'xaxes' : {'grid' : {'showgrid': True}}}]),
dict (method='update', label="Grid OFF", args=[{'xaxes' : {'grid' : {'showgrid': False}}}] ),
]
fig.update_layout(
updatemenus=[{'buttons':buttons}]
).update_xaxes(showgrid=True, gridwidth=2, gridcolor='LightPink',
tickmode='linear',
tick0 = 0,
dtick = 60,
range = [0, 2500]
).update_yaxes(showgrid=True, gridwidth=2, gridcolor='LightPink',
# tickmode='linear',
# tick0=0,
dtick=0.1,
)
- 主要问题是您使用了错误的方法。应该是relayout
- 存在一些微妙的问题,其中更多的只是可见性需要更新
- 我总是喜欢做一个列表理解来构建updatemenus结构以避免copy-paste类似代码
import plotly.express as px
import numpy as np
fig = px.scatter(x=np.linspace(1, 2500, 20), y=np.random.uniform(0, 1, 20))
buttons = [
{
"method": "relayout",
"label": l,
"args": [
{
"xaxis": {
"showgrid": s,
"gridcolor": "LightPink",
"dtick": 60,
"tick0": 0,
},
"yaxis": {"showgrid": s, "gridcolor": "LightPink", "dtick": 0.1},
}
],
}
for l, s in [("Grid ON", True), ("Grid OFF", False)]
]
fig.update_layout(updatemenus=[{"buttons": buttons}]).update_xaxes(
# showgrid=True,
# gridwidth=2,
gridcolor="LightPink",
# tickmode="linear",
tick0=0,
dtick=60,
range=[0, 2500],
).update_yaxes(
# showgrid=True,
# gridwidth=2,
gridcolor="LightPink",
# # tickmode='linear',
# # tick0=0,
dtick=0.1,
)