Напишите исходный код на python, чтобы он работал в DASH framework

#python #pandas #flask #plotly-dash

#python #pandas #flask #plotly-dash

Вопрос:

Я написал свой код на python, используя Jupyer Notebook, и он работает нормально. Мне нужна помощь в том, как написать этот код в DASH или заставить его работать в dash.

 PATH = 'products.csv'
data = pd.read_csv(PATH)
colors = ['#f4cb42', '#cd7f32', '#a1a8b5'] #gold,bronze,silver

medal_counts = data.Categories.value_counts(sort=True)
labels = medal_counts.index
values = medal_counts.values
pie = go.Pie(labels=labels, values=values, marker=dict(colors=colors))
layout = go.Layout(title='Sales by CATEGORIES ')
fig = go.Figure(data=[pie], layout=layout)
py.iplot(fig)
  

Код рисует круговую диаграмму.

Комментарии:

1. Является ли то, что я пытаюсь сделать, невозможным или недостижимым?

Ответ №1:

Вам просто нужно создать простое приложение Dash? Это не невозможно, но я ожидаю, что вы проголосовали против (кажется), не прилагая усилий, чтобы выяснить, как использовать Dash.

Вот супер простой пример. Вы можете запустить его localhost и просмотреть в браузере, а затем изменить оттуда по мере необходимости.

 import dash
import flask
import pandas as pd
import plotly.graph_objs as go
import dash_html_components as html
import dash_core_components as dcc

from dash.dependencies import Input, Output

server = flask.Flask('app')

app = dash.Dash('app', server=server)

app.layout = html.Div(children=[
        dcc.Graph(id='my-graph'),
        html.Button('Chart data', id='my-button'),
    ])


@app.callback(
    output=Output('my-graph', 'figure'),
    inputs=[
        Input('my-button', 'n_clicks'),
    ])
def update_graph(click: int):
    if click is not None and click > 0:
        colors = ['#f4cb42', '#cd7f32', '#a1a8b5']  # gold,bronze,silver

        df = pd.DataFrame.from_dict(dict(
            Categories=[1, 2, 3, 4, 5],
            something=[5, 6, 7, 8, 9],
        ))

        medal_counts = df.Categories.value_counts(sort=True)
        labels = medal_counts.index
        values = medal_counts.values
        pie = go.Pie(labels=labels, values=values, marker=dict(colors=colors))
        layout = go.Layout(title='Sales by CATEGORIES ')
        fig = go.Figure(data=[pie], layout=layout)

        return fig
    else:
        return go.Figure()


if __name__ == '__main__':
    app.run_server(debug=True, threaded=True)
  

Комментарии:

1. Я ценю, это тот пример, который мне был нужен. Спасибо

2. Спасибо, @agoura. Если вы нашли этот ответ полезным, пожалуйста, подумайте о том, чтобы установить флажок, чтобы отметить этот ответ как «принятый».