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

Plot latitude longitude from CSV in Python 3.6

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

我正在使用 python 3.6(显然 Basemap 等某些库无法在该版本上运行)。

我该怎么做?

如果您只是想将点数据绘制成散点图,就像

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

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

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

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

df = pd.read_csv("Long_Lats.csv", delimiter=',', skiprows=0, low_memory=False)

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);

在下面找到渲染图像的示例:

您还可以使用 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()