首页 > 解决方案 > 如何在 Plotly 中启用和禁用对数刻度作为查看器?

问题描述

我最近正在探索 Plotly,我想知道是否有一种方法可以共享绘图并让查看器在对数轴和线性轴之间切换。

有什么建议吗?

标签: pythonplotplotlyaxesplotly-dash

解决方案


Plotly 有一个下拉功能,允许用户动态更新绘图样式和/或正在显示的轨迹。下面是一个绘图的最小工作示例,用户可以在对数和线性刻度之间切换。

import plotly
import plotly.graph_objs as go


x = [1, 2, 3]
y = [1000, 10000, 100000]
y2 = [5000, 10000, 90000]

trace1 = go.Bar(x=x, y=y, name='trace1')
trace2 = go.Bar(x=x, y=y2, name='trace2', visible=False)


data = [trace1, trace2]

updatemenus = list([
    dict(active=1,
         buttons=list([
            dict(label='Log Scale',
                 method='update',
                 args=[{'visible': [True, True]},
                       {'title': 'Log scale',
                        'yaxis': {'type': 'log'}}]),
            dict(label='Linear Scale',
                 method='update',
                 args=[{'visible': [True, False]},
                       {'title': 'Linear scale',
                        'yaxis': {'type': 'linear'}}])
            ]),
        )
    ])

layout = dict(updatemenus=updatemenus, title='Linear scale')
fig = go.Figure(data=data, layout=layout)

plotly.offline.iplot(fig)

我在列表中添加了两条迹线,data以显示如何在绘图中添加或删除迹线。这可以通过for each中的visible列表来控制。updatemenusbutton


推荐阅读