如何解决在地图上绘制经度和纬度并为每个子集DataFarame 中的每一行创建线
我在我的数据集上做了很多工作,使它像下面这样。 我知道如何绘制大叶中的每个纬度和经度,如下所示。我不知道如何 每行中我的数据集的每对纬度和经度之间的绘图线(多边形)。正如我们看到的,每一行都是纬度和经度的组合。
注意: 我没有为提供的 DataFrame 编写此代码。它用于具有名为“start_station_latitude”的列和其他列 start_station_longitude 的数据框。
import matplotlib.pyplot as plt
#installation
# Create a world map to show distributions of users
import folium
from folium.plugins import MarkerCluster
#empty map
world_map= folium.Map(tiles="CartoDB dark_matter")
marker_cluster = MarkerCluster().add_to(world_map)
#for each coordinate,create circlemarker of user percent
for i in range(len(trip_counts_10)):
lat = trip_counts_10.iloc[i]['start_station_latitude']
long = trip_counts_10.iloc[i]['start_station_longitude']
radius=5
popup_text = """Users : {}<br>"""
popup_text = popup_text.format(trip_counts_10.iloc[i]['start_station_name'])
folium.CircleMarker(location = [lat,long],radius=radius,popup= popup_text,fill =True).add_to(marker_cluster)
plt.savefig('x',dpi=300)
#show the map
world_map
#tiles="CartoDB dark_matter"
#cartodbpositron
lan0 lan1 lan2 long0 long1 long2
59.915667 59.913796 59.922539 10.777567 10.735802 10.704541
59.929853 59.919463 59.910356 10.711515 10.743829 10.705106
....
我也写了下面的代码来获取每一行的列表,但我不知道接下来该怎么做。
import geopandas as gpd
from shapely.geometry import polygon
Row_list = []
for index,rows in indices_df.iterrows():
my_list =[rows.lan0,rows.lan1,rows.lan2,rows.long0,rows.long1,rows.long2]
Row_list.append(my_list)
print(Row_list)
#polygon_geom = polygon(zip(lon_point_list,lat_point_list))
解决方法
我不确定我是否完全理解您的问题。我的理解是,你有一个 df,每一行都有三个纬度和三个经度,你想通过这三个点画一条线。如果这就是你的意思,你可以试试这个:
folium.PolyLine(points).add_to(world_map)
这里的 points
是一个包含纬度和经度的元组列表。你可以像这样制作这个列表:
mid_i = int(len(my_list)/2)
points = [(my_list[i],my_list(mid_i + i]) for i in range(mid_i)]
如果您希望该线闭合,只需将第一个点添加到此列表的末尾即可。
points.append(points[0])
有关详细信息,请参阅 this page。
此外,我认为您做出了一些有问题的设计选择。讨论这些并不是这个答案的真正重点,但我建议您永远不要使用名称 lan
表示纬度,这是没有意义的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。