Я следую руководству по senddex, как отображать данные с помощью da sh. Я начал это как неделя go, когда я не получил сообщение об ошибке. Сегодня я хотел продолжить, но я застрял в этой проблеме, потому что все люди, у которых есть такая же проблема, могут решить ее, переустановив pandas datareader via:
pip uninstall pandas-datareader
pip install --user --upgrade pandas-datareader
Проверка версий через pip freeze
дает мне версии:
pandas==1.0.3
pandas-datareader==0.8.1
Я чувствую, что что-то не так с пакетами, потому что моя установка python3 где-то довольно необычная, я думаю:
$ which python3
/usr/bin/python3
Но я не совсем погода действительно там ..
Код:
import pandas_datareader.data as web
import datetime
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
app = dash.Dash()
app.layout = html.Div(children=[
html.Div(children='''
Symbol to graph:
'''),
dcc.Input(id='input', value='', type='text'),
html.Div(id='output-graph'),
])
@app.callback(
Output(component_id='output-graph', component_property='children'),
[Input(component_id='input', component_property='value')]
)
def update_value(input_data):
start = datetime.datetime(2015, 1, 1)
end = datetime.datetime.now()
df = web.DataReader(input_data, 'morningstar', start, end)
df.reset_index(inplace=True)
df.set_index("Date", inplace=True)
df = df.drop("Symbol", axis=1)
return dcc.Graph(
id='example-graph',
figure={
'data': [
{'x': df.index, 'y': df.Close, 'type': 'line', 'name': input_data},
],
'layout': {
'title': input_data
}
}
)
if __name__ == '__main__':
app.run_server(debug=True)