【问题标题】:Plotly (Dash) tick label overwritingPlotly (Dash) 勾选标签覆盖
【发布时间】:2017-12-10 05:51:11
【问题描述】:

我无法获得以下内容来绘制刻度标签

self.months = [2017-01-01', 2017-02-01', ...]



def plot_bar(self):
        print self.data
        app.layout = html.Div(children=[html.H1(children=''), html.Div(children='Discovered monthly'),
        dcc.Graph(
            figure=go.Figure(
            data = self.data,
            layout=go.Layout(
                title='Streams', showlegend=True, barmode='stack', margin=go.Margin(l=200, r=0, t=40, b=20),
                xaxis=dict(tickvals = self.months, ticktext = self.months, title='months')
                )
            ),
        style={'height': 300},
        id='my-graph')
        ])

所以基本上我有一个条形图的数字表示,但是当我更改刻度值和刻度标签时,这些数字标签消失了,但是我看不到我应该在那里的日期。我是否缺少显示这些标签的开关?

【问题讨论】:

  • 你有一些样本数据吗?

标签: python plotly


【解决方案1】:

tickvals 必须是刻度所在的 x 轴的实际值,而不是标签。不知道您的实际数据是什么样的,这里是一个带有一些虚构数据的调整示例:

self.months = ['2017-01-01', '2017-02-01', '2017-03-01']
self.data = [
    {'x': [0, 1, 2], 'y': [4, 1, 2], 'type': 'bar', 'name': 'SF'},
    {'x': [0, 1, 2], 'y': [2, 4, 5], 'type': 'bar', 'name': u'Montréal'},
]

# X-Axis location for the ticks
self.tickvals = [0, 1, 2]

def plot_bar(self):
    app.layout = html.Div(children=[html.H1(children=''), html.Div(children='Discovered monthly'),
                                    dcc.Graph(
                                        figure=go.Figure(
                                            data = self.data,
                                            layout=go.Layout(
                                                title='Streams', showlegend=True, barmode='stack', margin=go.Margin(l=200, r=0, t=40, b=20),
                                                xaxis=dict(tickvals = self.tickvals, ticktext = self.months, title='months')
                                            )
                                        ),
                                        style={'height': 300},
                                        id='my-graph')
                                    ])

注意这如何在 x 轴上将 2017-01-01 映射到对应的值 02017-02-0112017-03-012。我本可以省略2017-02-01(因此self.tickvals 中的1),以防会产生太多标签或在这里选择任意值(例如1.5)来绘制我的标签。正如我们所讨论的条形图,后一个示例缺少有用的应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 2015-01-29
    • 1970-01-01
    • 2014-11-11
    相关资源
    最近更新 更多