Python 使用geopandas在地图上绘制值
我有五个国家1991-2020年的数据Python 使用geopandas在地图上绘制值,python,pandas,dataframe,matplotlib,geopandas,Python,Pandas,Dataframe,Matplotlib,Geopandas,我有五个国家1991-2020年的数据 Date Temperature Units Year Month Statistics Country CODE Jan 2020 -26.2 Celsius 1991 Jan Average Canada CAN Feb 2020 -21.0 Celsius
Date Temperature Units Year Month Statistics Country CODE
Jan 2020 -26.2 Celsius 1991 Jan Average Canada CAN
Feb 2020 -21.0 Celsius 1991 Feb Average Canada CAN
Mar 2020 -18.2 Celsius 1991 Mar Average Canada CAN
Apr 2020 -8.6 Celsius 1991 Apr Average Canada CAN
May 2020 0.8 Celsius 1991 May Average Canada CAN
m2020
在世界地图上,我正在绘制2020年每个国家的气温。我想为每个月创建一个图,所以我创建了一个循环,每个月循环一次。当我作图时,我得到了12个图,但温度值在整个月内没有变化。你知道有什么问题吗?在我的图中,我想看到,例如,在加拿大1月份,蓝色表示-26,而在5月份,绿色表示0.8度
我这样做:
world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))world.columns=['pop_est', 'continent', 'name', 'CODE', 'gdp_md_est', 'geometry']
for i in m2020.groupby(['Month']).Month:
fig, ax = plt.subplots(figsize=(15,12))
world.plot(ax=ax, color='lightgrey')
m2020.plot(x="longitude", y="latitude", kind="scatter",
c='Temperature', colormap="hsv",
ax=ax)
plt.title(i[0])
plt.show()
您可以尝试首先在for循环之前插入最小和最大温度变量的范围:
m2020.plot("Temperature",x="longitude", y="latitude", kind="scatter",
vmin=vmin, vmax=vmax, colormap="hsv",ax=ax)
vmin=m2020[“温度”].min()
vmax=m2020[“温度”].max()
然后修改for循环内的第三行:
m2020.plot("Temperature",x="longitude", y="latitude", kind="scatter",
vmin=vmin, vmax=vmax, colormap="hsv",ax=ax)