在Python 3.6中从CSV绘制纬度经度

时间:2018-11-09 21:01:51

标签: python google-maps google-maps-api-3 geolocation folium

我正在尝试从地图上的CSV文件中绘制大量的经度值,并采用这种格式(第一列和第二列):

enter image description here

我正在使用python 3.6(显然,某些Basemap之类的库无法在此版本上运行)。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

如果您只是想将点数据绘制为散点图,就这么简单

import matplotlib.pyplot as plt
plt.scatter(x=df['Longitude'], y=df['Latitude'])
plt.show()

如果您想在地图上绘制点,它会变得越来越有趣,因为它更多地取决于您如何绘制地图。

一种简单的方法是使用shapelygeopandas。考虑到我目前在使用的笔记本电脑上的访问权限有限,因此未对以下代码进行测试,但这应该为您提供概念上的路线图。

from shapely.geometry import Point
import geopandas as gpd
from geopandas import GeoDataFrame

geometry = [Point(xy) for xy in zip(df['Longitude'], df['Latitude'])]
gdf = GeoDataFrame(df, geometry=geometry)   

#this is a simple map that goes with geopandas
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
gdf.plot(ax=world.plot(figsize=(10, 6)), marker='o', color='red', markersize=15);

答案 1 :(得分:0)

您还可以使用 plotly express 绘制经纬度的交互式世界地图

DataFrame Head

import plotly.express as px
import pandas as pd

df = pd.read_csv("location_coordinate.csv")

fig = px.scatter_geo(df,lat='lat',lon='long', hover_name="id")
fig.update_layout(title = 'World map', title_x=0.5)
fig.show()