У меня есть веб-приложение Dash с картой, использующей Mapbox.Данные включают в себя значение «соседства» с широтой и долготой.Я хочу изменить цвет маркера в зависимости от района.Я попытался создать словарь, отображающий окрестности на цвет.Но когда я запускаю приложение, карта создается, но все маркеры одного цвета.
мой код:
colors = {'77th Street':'rgb(66, 134, 244)','Central':'rgb(65, 244, 83)',
'Devonshire':'rgb(66, 134, 244)','Foothill':'rgb(244, 223, 65)',
'Harbor':'rgb(66, 134, 244)','Hollenbeck':'rgb(66, 134, 244)',
'Hollywood':'rgb(66,4, 65)','Mission':'rgb(66, 134, 244)',
'N Hollywood':'rgb(66, 134, 244)','Newton':'rgb(244, 65, 211)',
'Northeast':'rgb(66, 134, 244)','Olympic':'rgb(35, 1, 6)',
'Pacific':'rgb(66, 134, 244)','Rampart':'rgb(101, 94, 119)',
'Southeast':'rgb(14, 72, 142)','Southwest':'rgb(66, 134, 244)',
'Topanga':'rgb(13, 142, 139)','Van Nuys':'rgb(66, 134, 244)',
'West LA ':'rgb(21, 193, 96)','West Valley':'rgb(66, 134, 244)',
'Wilshire':'rgb(66, 134, 244)'}
@app.callback(
Output('map-graph', 'figure'),
[Input('submit-button', 'n_clicks')],
[State('my_date_picker', 'start_date'),
State('my_date_picker', 'end_date'),
State('my_crime_picker','value'),
State('my_area_picker','value')
])
def update_figure(n_clicks, start_date, end_date,crimelist,arealist):
start = start_date #datetime.strptime(start_date,'%Y-%m-%d')
end = end_date #datetime.strptime(end_date,'%Y-%m-%d')
df1['DateOccurred'] = pd.to_datetime(df['DateOccurred'])
df2 = df1[(df1['DateOccurred'] >= start) & (df1['DateOccurred'] <= end) ]
df3 = df2[(df2['CRIMECATEGORY'].isin(crimelist))]
df4 = df3[(df3['AreaName'].isin(arealist))]
df5 = df4[['AreaName','DateOccurred','TimeOccurred','CrimeDesc','Lat','Lon']]
return {
"data": [{
"type": "scattermapbox",
"lat": list(df5['Lat']),
"lon": list(df5['Lon']),
"hoverinfo": "text",
"hovertext": [["Precinct: {} <br>DateOccurred: {} <br>TimeOccurred: {} <br>CrimeDesc: {}".format(i,j,k,l)]
for i,j,k,l in zip(df5['AreaName'],df5['DateOccurred'], df5['TimeOccurred'],df5['CrimeDesc'])],
"mode": "markers",
"name": list(df5['CrimeDesc']),
"marker": {"color":colors,#'rgb(193,21,55)',
"size": 6,
"opacity": 0.5
}
}],
"layout": layout_map
}