使用 Matplotlib 绘制坐标会扭曲底图

我正在尝试使用 Geopandas 和 Matplotlib 在地图上显示商店的空间分布。

问题: 当我绘制图钉时,底图会变形。

http://img1.mukewang.com/6459b0f7000141fb05270437.jpg

这是绘制引脚之前和之后的示例

http://img3.mukewang.com/6459b1020001b17d05950357.jpg

问题: 这种失真的来源是什么?我该如何预防?


import pandas as pd

import geopandas as gpd

import matplotlib.pyplot as plt

from shapely.geometry import Polygon


# Creating the simplified polygon

latitude = [60.41125, 59.99236, 59.99236]

longitude = [24.66917, 24.66917, 25.36972]

geometry = Polygon(zip(longitude, latitude))

polygon = gpd.GeoDataFrame(index=[0], crs = 'epsg:4326', geometry=[geometry]) 


# ploting  the basemap

ax = polygon.plot(color="#3791CB")


# Dict of sample coordinates

coordinates = {"latitude": ["60.193141", "60.292777", "60.175053", "60.163187", "60.245272", "60.154392", "60.182906"],

"longitude": ["24.934214", "24.969730", "24.831068", "24.739044", "24.860983", "24.884773", "24.959175"]}


# Creating a dataframe from coordinates

df = pd.DataFrame(coordinates)


# Creating the GeoDataFrame

shops = gpd.GeoDataFrame(coordinates, geometry=gpd.points_from_xy(df.longitude, df.latitude))


# Plotting office coordinates

shops.plot(ax=ax, color="red", markersize = 20, zorder=2)


# adding grid

plt.grid(linestyle=":", color='grey')


plt.show()

谢谢你!


开满天机
浏览 129回答 1
1回答

哆啦的时光机

你的地图和别针有不同的参考系统..当您创建第一个 GeoDataFrame 时,您指定其坐标参考系统 (crs = 'epsg:4326')。当您为商店坐标创建地理数据框时,您不需要。这就是失真的来源……这应该修复它:shops = gpd.GeoDataFrame(        coordinates,         geometry = gpd.points_from_xy(              df.longitude,               df.latitude),               crs = "EPSG:4326"               )        ) 
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python