1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| import dash import dash_core_components as dcc import dash_html_components as html import dash_table import pandas as pd import plotly.express as px from dash.dependencies import Input, Output
df = pd.read_csv('401307compatibleformatshelter.csv', encoding='cp932')
px.set_mapbox_access_token('<<mapboxで取得したトークン>>')
app = dash.Dash(__name__)
app.layout = html.Div( [ html.Div( [ html.H2('避難所マップ'), dash_table.DataTable( id='table1', style_cell={ 'textAliign':'center', 'maxWidth':'80px', 'minWidth':'80px', 'whiteSpace':'normal' }, fixed_rows={'headers':True}, columns=[{'name':col, 'id':col} for col in df.columns], data=df.to_dict('records') ) ] ), dcc.Graph(id='map1') ] )
@app.callback( Output('map1', 'figure'), Input('table1', 'columns'), Input('table1', 'derived_virtual_data') ) def update_map(columns, rows): df = pd.DataFrame(rows, columns=[c['name'] for c in columns]) return px.scatter_mapbox( df, lat='緯度', lon='経度', zoom=10, hover_data=['名称', '名称かな表記', '住所表記'] )
if __name__ == '__main__': app.run_server(debug=True)
|