Python 将不同的数据叠加到单个地图中
Python Overlay Different Data into Single Map
我正在尝试叠加两组纬度和经度图,以便第一组具有一种颜色的点,第二组具有不同颜色的点绘制在同一张地图上。我试图共享相同的轴 (ax),但它一直在 2 张地图中绘制点,而不是 1 张带有两组或点颜色的单张地图。我的代码如下所示:
from sys import exit
from shapely.geometry import Point
import geopandas as gpd
from geopandas import GeoDataFrame as gdf
from shapely.geometry import Point, LineString
import pandas as pd
import matplotlib.pyplot as plt
dfp = pd.read_csv("\\porfiler03\gtdshare\Long_Lats_90p.csv", delimiter=',', skiprows=0,
low_memory=False)
geometry = [Point(xy) for xy in zip(dfp['Longitude'], dfp['Latitude'])]
gdf = gpd.GeoDataFrame(dfp, geometry=geometry)
#this is a simple map that goes with geopandas
fig, ax = plt.subplots()
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
#world = world[(world.name=="Spain")]
gdf.plot(ax=world.plot(figsize=(10, 6)), marker='o', color='red', markersize=15);
dfn = pd.read_csv("\\porfiler03\gtdshare\Long_Lats_90n.csv",
delimiter=',', skiprows=0,
low_memory=False)
geometry = [Point(xy) for xy in zip(dfn['Longitude'], dfn['Latitude'])]
gdf = gpd.GeoDataFrame(dfn, 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='yellow',
markersize=15);
我的第一个图看起来像下面的第二个图,但在美国和西班牙有红点:
我的第二个情节是这样的:
感谢您帮助我将这两组不同的点和颜色叠加到一张地图中。
在您的例子中,您想要在单个轴上绘制 3 个地理数据框(world、gdf1 和 gdf2)。然后,在创建 fig/axes 之后,您必须为每个绘图重复使用相同的轴(例如,ax1
)。以下是重要步骤的总结:
创建figure/axes
无花果, ax1 = plt.subplots(无花果大小=(5, 3.5))
绘制底图
world.plot(ax=ax1)
绘制图层
gdf1.plot(ax=ax1)
绘制更多图层
gdf2.plot(ax=ax1)
希望这对您有所帮助。
我正在尝试叠加两组纬度和经度图,以便第一组具有一种颜色的点,第二组具有不同颜色的点绘制在同一张地图上。我试图共享相同的轴 (ax),但它一直在 2 张地图中绘制点,而不是 1 张带有两组或点颜色的单张地图。我的代码如下所示:
from sys import exit
from shapely.geometry import Point
import geopandas as gpd
from geopandas import GeoDataFrame as gdf
from shapely.geometry import Point, LineString
import pandas as pd
import matplotlib.pyplot as plt
dfp = pd.read_csv("\\porfiler03\gtdshare\Long_Lats_90p.csv", delimiter=',', skiprows=0,
low_memory=False)
geometry = [Point(xy) for xy in zip(dfp['Longitude'], dfp['Latitude'])]
gdf = gpd.GeoDataFrame(dfp, geometry=geometry)
#this is a simple map that goes with geopandas
fig, ax = plt.subplots()
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
#world = world[(world.name=="Spain")]
gdf.plot(ax=world.plot(figsize=(10, 6)), marker='o', color='red', markersize=15);
dfn = pd.read_csv("\\porfiler03\gtdshare\Long_Lats_90n.csv",
delimiter=',', skiprows=0,
low_memory=False)
geometry = [Point(xy) for xy in zip(dfn['Longitude'], dfn['Latitude'])]
gdf = gpd.GeoDataFrame(dfn, 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='yellow',
markersize=15);
我的第一个图看起来像下面的第二个图,但在美国和西班牙有红点:
我的第二个情节是这样的:
感谢您帮助我将这两组不同的点和颜色叠加到一张地图中。
在您的例子中,您想要在单个轴上绘制 3 个地理数据框(world、gdf1 和 gdf2)。然后,在创建 fig/axes 之后,您必须为每个绘图重复使用相同的轴(例如,ax1
)。以下是重要步骤的总结:
创建figure/axes
无花果, ax1 = plt.subplots(无花果大小=(5, 3.5))
绘制底图
world.plot(ax=ax1)
绘制图层
gdf1.plot(ax=ax1)
绘制更多图层
gdf2.plot(ax=ax1)
希望这对您有所帮助。