Не могу получить ярлык на y-achse - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь нанести ярлыки на y-Achse в моем Dash-коде, но он не работает, согласно примеру кода, который я нашел в Интернете.

Мой код:

    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 голосов
/ 07 февраля 2019

Похоже, проблема заключается в добавлении меток в 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, который содержитсвойство yaxis, которое настраивает ось Y.Когда мы установим 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()

Чтобы узнать большеВизит Полностью официальная документация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...