Python 带有对数比例尺彩色地图的Geopandas

Python 带有对数比例尺彩色地图的Geopandas,python,geopandas,Python,Geopandas,如果我有下面的图,如何将彩色地图/图例转换为对数比例 import geopandas as gpd import matplotlib.pyplot as plt world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres')) world = world[(world.pop_est>0) & (world.name!="Antarctica")] fig, ax = plt.subpl

如果我有下面的图,如何将彩色地图/图例转换为对数比例

import geopandas as gpd
import matplotlib.pyplot as plt

world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
world = world[(world.pop_est>0) & (world.name!="Antarctica")]
fig, ax = plt.subplots(1, 1)
world.plot(column='pop_est', ax=ax, legend=True)

您可以简单地绘制值的日志,而不是值本身

import geopandas as gpd
import matplotlib.pyplot as plt
from numpy import log10

world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
world = world[(world.pop_est>0) & (world.name!="Antarctica")]
world['logval'] = log10(world['pop_est'])
fig, ax = plt.subplots(1, 1)
world.plot(column='logval', ax=ax, legend=True)

您可以简单地绘制值的日志,而不是值本身

import geopandas as gpd
import matplotlib.pyplot as plt
from numpy import log10

world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
world = world[(world.pop_est>0) & (world.name!="Antarctica")]
world['logval'] = log10(world['pop_est'])
fig, ax = plt.subplots(1, 1)
world.plot(column='logval', ax=ax, legend=True)

GeoPandas绘图使用matplotlib,因此您可以使用它提供的颜色贴图的标准化。请注意,我还将最小值和最大值指定为正在绘制的列的最小值和最大值

world.plot(column='pop_est',legend=True,norm=matplotlib.colors.LogNorm(vmin=world.pop_est.min(),vmax=world.pop_est.max()),)

GeoPandas绘图使用matplotlib,因此您可以使用它提供的彩色地图的标准化。请注意,我还将最小值和最大值指定为正在绘制的列的最小值和最大值

world.plot(column='pop_est',legend=True,norm=matplotlib.colors.LogNorm(vmin=world.pop_est.min(),vmax=world.pop_est.max()),)

如果执行此操作,则图例不会显示要显示的实际值。如果执行此操作,则图例不会显示要显示的实际值。谢谢,看起来很棒!但是,我得到了属性错误:模块“matplotlib.pyplot”没有属性“colors”。在我的脚本开始时,我已经导入了
matplotlib.colors as colors
。明白了,我必须删除
matplotlib
:)谢谢,看起来很棒!但是,我得到了属性错误:模块“matplotlib.pyplot”没有属性“colors”。在脚本的开头,我已经导入了
matplotlib.colors as colors
。明白了,我必须删除
matplotlib
:)