无法获得y-achse的标签

时间:2019-02-06 23:05:55

标签: python plotly

根据我在网上找到的一些示例代码,我试图在dash代码上的y-Achse上放置标签,但是它不起作用。

我的代码:

    import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, State
import plotly.graph_objs as go

arrayValues = ['28.687', '29.687', '24.687', '21.687', '25.687', '28.687']

app = dash.Dash()
app.layout = html.Div([
    html.H1('Title'),
    dcc.Dropdown(
        id='my-dropdown',
        options=[
            {'label': 'Fruit', 'value': 'FRUIT'}
           # {'label': 'Tesla', 'value': 'TSLA'},
           # {'label': 'Apple', 'value': 'AAPL'}
        ],
        value='TEMPERATUR'
    ),
    dcc.Slider(
    min=-5,
    max=10,
    step=0.5,
    value=-3,
    ),
    dcc.Graph(id='my-graph', animate=True),
])


@app.callback(Output('my-graph', 'figure'), [Input('my-dropdown', 'value')])
def update_graph(selected_dropdown_value):

    return {
        'data': [
                {'y': arrayValues} #Important part
            ]
    }

if __name__ == '__main__':
    app.run_server(
    )

我曾尝试添加'name'='somename' name ='somename',但是它虽然可以正常工作,但仍然无法正常工作。
示例:

 {'y': arrayValues, 'name' = 'somename'} #Important part

我没有任何错误或其他信息,只是没有显示任何结果。

1 个答案:

答案 0 :(得分:0)

听起来像是问题是在y-axis上添加标签,您可以通过设置以下属性来使包含标签的轴成为

{
    'data': [
            {'y': arrayValues} #Important part
        ],
    'layout': {
        'yaxis':{
            'ticktext': ['label-1', 'label-2', 'label-3', 'label-4', 'label-5'], 
            'tickmode': 'array', 
            'tickvals': arrayValues
        }
    }
}

因此,我们添加了layout对象,该对象包含用于配置y轴的属性yaxis。当我们将tickmode设置为array时,ticktext数组将接受字符串列表作为输入。该ticktext应该具有对应的数值,作为分配给另一个数组tickvals的列表,请仔细阅读下面的修改代码,让我知道这是否解决了您的问题。

import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, State
import plotly.graph_objs as go

arrayValues = ['28.687', '29.687', '24.687', '21.687', '25.687', '28.687']

app = dash.Dash()
app.layout = html.Div([
    html.H1('Title'),
    dcc.Dropdown(
        id='my-dropdown',
        options=[
            {'label': 'Fruit', 'value': 'FRUIT'}
           # {'label': 'Tesla', 'value': 'TSLA'},
           # {'label': 'Apple', 'value': 'AAPL'}
        ],
        value='TEMPERATUR'
    ),
    dcc.Slider(
    min=-5,
    max=10,
    step=0.5,
    value=-3,
    ),
    dcc.Graph(id='my-graph', animate=True),
])


@app.callback(Output('my-graph', 'figure'), [Input('my-dropdown', 'value')])
def update_graph(selected_dropdown_value):

    return {
        'data': [
                {'y': arrayValues} #Important part
            ],
        'layout': {
            'yaxis':{
                'ticktext': ['label-1', 'label-2', 'label-3', 'label-4', 'label-5'], 
                'tickmode': 'array', 
                'tickvals': arrayValues
            }
        }
    }

if __name__ == '__main__':
    app.run_server()

要了解更多信息,请访问Plotly official documentation