如何在python plotly scattergeo线图中分离不同的痕迹
Posted
技术标签:
【中文标题】如何在python plotly scattergeo线图中分离不同的痕迹【英文标题】:How to separate different traces in a python plotly scattergeo line map 【发布时间】:2020-01-27 16:02:36 【问题描述】:我在 python 中使用 plotly scattergeo 绘制不同的路线,我的问题是我无法区分不同行程之间的线路,并且所有线路都连接起来,就好像它们只是一条线路一样。
这张图片中有两次旅行,从赤道吉尼到里斯本,从赤道吉尼到开普敦,但即使有两次单独的旅行,从第 1 次旅行(到里斯本)的终点到第 2 次旅行的起点也有一条连接线
这是我用来生成绘图的代码:
import plotly.graph_objects as go
lat = [1.769395, 3.909938, 4.416706, 4.402889, 4.470340,
9.905343,14.541283, 38.611303, 1.769395,2.958316,
-6.161784, -12.832035, -22.959316, -34.089891]
lon = [9.687394, 9.012994, 7.696527, 5.590180, -4.445836,
-15.484433, -23.936471, -9.516133, 9.687394, 12.089027,
-4.623525, 12.121931, 10.773240, 17.804489]
fig = go.Figure(go.Scattermapbox(
mode="markers+lines",
lon=lon,
lat=lat,
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)
#To be able to see the plot while using pycharm
fig.write_image('C:/Users/user/Desktop/test.png')
fig.show()
我的目标是将不同的痕迹分开,而不是全部连接起来。
【问题讨论】:
Hola Ignacio,请提供mcve,以便更容易提供帮助。 mcve 已添加,谢谢提醒 分开是什么意思? 跟踪的结尾不应连接到下一个跟踪的开头,如图所示,它从里斯本跳到非洲的吉尼槽。 您介意创建 lat_trip1、lon_trip1 和 lat_trip2、lon_trip2 吗?由于它们混合实际行为是正常的。 【参考方案1】:鉴于trip1 在索引7 处结束,您可以将lon
和lat
按trip 分开。完整代码在这里
import plotly.graph_objects as go
lat = [1.769395, 3.909938, 4.416706, 4.402889, 4.470340,
9.905343,14.541283, 38.611303, 1.769395,2.958316,
-6.161784, -12.832035, -22.959316, -34.089891]
lon = [9.687394, 9.012994, 7.696527, 5.590180, -4.445836,
-15.484433, -23.936471, -9.516133, 9.687394, 12.089027,
-4.623525, 12.121931, 10.773240, 17.804489]
lon_trip1 = lon[:8]
lat_trip1 = lat[:8]
lon_trip2 = lon[8:]
lat_trip2 = lat[8:]
fig = go.Figure()
fig.add_trace(go.Scattermapbox(
mode="markers+lines",
lon=lon_trip1,
lat=lat_trip1,
name="trip1",
marker='size': 10))
fig.add_trace(go.Scattermapbox(
mode="markers+lines",
lon=lon_trip2,
lat=lat_trip2,
name="trip2",
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)
#To be able to see the plot while using pycharm
# fig.write_image('C:/Users/user/Desktop/test.png')
fig.show()
【讨论】:
以上是关于如何在python plotly scattergeo线图中分离不同的痕迹的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中更改 plotly.express 的颜色和大小?
[散点图][Plotly][Python] 如何在散点图中标记心形
Plotly:如何在绘图线图中的特定点添加标记(python / pandas)