На графике, состоящем из штрихов, не отображаются значения

Я пытаюсь создать диаграмму с помощью Dash для Python. У меня есть файл со значениями, которые я хочу прочитать, сохранить значения в списке и использовать его для создания графика. Мой код:

    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),
])
path = "/../example.csv"

with open(path,"r") as file:
    reader = csv.reader(file)
    dataCopy=[]
    for line in file: 
        dataCopy.append(line)
    arrayValues = np.array(dataCopy)
@app.callback(Output('my-graph', 'figure'), [Input('my-dropdown', 'value')])

def update_graph(selected_dropdown_value):

    return {
        'data': arrayValues }

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

Когда я печатаю arrayValues ​​, я получаю:

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

Но когда я проверяю свой график, на нем не отображаются значения. Вы знаете, в чем могла быть моя ошибка?

ОБНОВЛЕНИЕ: я пробовал со строкой

arrayValues = list(map(float, arrayValues))

после получения его в качестве предложения в комментариях, но до сих пор нет работоспособного кода.


person CroatiaHR    schedule 31.01.2019    source источник


Ответы (1)


Вам необходимо ввести дополнительную информацию в поле График data,

Если вы хотите, чтобы значения arrayValues ​​отображались по оси Y на линейном графике, следующий код должен работать.

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

#hardcoding arrayValues since csv is not provided
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),
])
#path = "/../example.csv"

#with open(path,"r") as file:
#    reader = csv.reader(file)
#    dataCopy=[]
#    for line in file: 
#        dataCopy.append(line)
#    arrayValues = np.array(dataCopy)



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

    return {
        'data': [
                {'y': arrayValues}
            ]
    }

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

Поскольку Dash использует графическое представление plotly, вы можете обратиться к официальной документации на plotly, чтобы узнать о множестве таких графов.

Вот документация: https://plot.ly/python/basic-charts/

person n00b    schedule 02.02.2019