如何更改 GeoPandas 等值线图的颜色条的字体大小

How to change the font size of the color bar of a GeoPandas choropleth plot

当我尝试使用 legend_kwds 参数更改颜色栏的字体大小时,我不断收到此错误

TypeError: init() got an unexpected keyword argument 'fontsize'

ax = df.plot(figsize=(20,16), alpha=0.8, column='value', legend=True, cmap='OrRd', legend_kwds={'fontsize':20})
    
plt.show()

有谁知道如何使用 GeoPandas 增加颜色栏的字体大小?我似乎找不到有效的关键字。我正在使用 GeoPandas 0.8.1 和 Matplotlib 3.3.1。

您可以使用 matplotlib 解决方法,而不是在 geopandas 的 plot 函数的单个语句中传递所有复杂的参数。

import numpy as np
import geopandas as gpd
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable

# for demo purposes, use the builtin data
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
africa = world[world.continent=='Africa']
maxv, minv = max(africa.pop_est), min(africa.pop_est)

fig, ax = plt.subplots(figsize=(7,6))
divider = make_axes_locatable(ax)

# create `cax` for the colorbar
cax = divider.append_axes("right", size="5%", pad=0.1)

# plot the geodataframe specifying the axes `ax` and `cax` 
africa.plot(column="pop_est", cmap='magma', legend=True, \
            vmin=minv, vmax=maxv, ax=ax, cax=cax)

# manipulate the colorbar `cax`
cax.set_ylabel('pop_est', rotation=90)
# set `fontsize` on the colorbar `cax`
cax.set_yticklabels(np.linspace(minv, maxv, 10, dtype=np.dtype(np.uint64)), {'fontsize': 8})

plt.show()

输出图:

我遇到了同样的问题,我发现答案不正确 - 图例上的标签实际上是错误的。

所以用同样的思路,你可以调用

cax.tick_params(labelsize='20')

这将保留绘图创建的默认刻度,但您可以更改详细信息。