#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. Если вы нашли этот ответ полезным, пожалуйста, подумайте о том, чтобы установить флажок, чтобы отметить этот ответ как «принятый».