У меня есть следующий код, который хорошо работает:
import plotly.graph_objects as go
fig = go.Figure(go.Scattermapbox(
mode = "markers+lines",
lon = [-74.164556, -73.214697],
lat = [41.515941, 41.474395],
marker = {'size': 10}))
fig.update_layout(
margin = {'l':0,'t':0,'b':0,'r':0},
mapbox = {
'center': {'lon': 10, 'lat': 10},
'style': "stamen-terrain",
'center': {'lon': -20, 'lat': -20},
'zoom': 1})
fig.show()
Результат:
Сейчас я пытаюсь добавить несколько строк из своего фрейма данных, но мне не повезло. Это то, что я пытаюсь (выделил новые области):
import plotly.graph_objects as go
Start_Lat = data['Start_Lat'] ## New code
Start_Lng = data['Start_Lng'] ## New code
End_Lat = data['End_Lat'] ## New code
End_Lng = data['End_Lng'] ## New code
fig = go.Figure(go.Scattermapbox(
mode = "markers+lines",
lat = [Start_Lat, End_Lat], ## New code
lon = [Start_Lng, End_Lng], ## New code
marker = {'size': 10}))
fig.update_layout(
margin = {'l':0,'t':0,'b':0,'r':0},
mapbox = {
'center': {'lon': 10, 'lat': 10},
'style': "stamen-terrain",
'center': {'lon': -20, 'lat': -20},
'zoom': 1})
fig.show()
Данные выглядят так:
Кто-нибудь может сказать мне, что я делаю неправильно здесь?
Спасибо :)
хорошо, ваша проблема в том, что лат, который вы предоставляете, представляет собой кортеж из 2 массивов, но вход должен быть одним массивом....






С вашим форматом данных лучше всего зациклить пары начальной и конечной координат. В противном случае я думаю, что это должен быть список с чередующимися начальными и конечными координатами.
import plotly.graph_objects as go
fig = go.Figure()
for row in data.itertuples():
fig.add_trace(go.Scattermapbox(
mode = "markers+lines",
lat = [row.Start_Lat, row.End_Lat],
lon = [row.Start_Lng, row.End_Lng],
marker = {'size': 10}))
fig.update_layout(
margin = {'l':0,'t':0,'b':0,'r':0},
mapbox = {
'center': {'lon': data['Start_Lng'].mean(), 'lat': data['Start_Lat'].mean()},
'style': "stamen-terrain",
'zoom': 5.5})
fig.show()
Это круто, как вы используете среднюю долготу/широту для центрирования вещей :)
Вы получаете какие-либо ошибки после запуска нового кода? Какой выход тогда?