python - 如何更改 GeoPandas 等值线图颜色条的字体大小
问题描述
当我尝试使用 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()
输出图:
推荐阅读
- python - 当格式为“日期(18、8、2019)”时,如何插入“datetime.now”?
- r - R 中的幂回归系数与 Excel 不匹配
- bootstrap-4 - 根据屏幕大小修改div的顺序,用bootstrap 4.1.1
- reactjs - 如何用用户设置覆盖上下文的默认值?
- hive - Hive QL 填充限制之间的数字序列
- sql - SQL Server 中的条件语句
- python - 你能得到Python中邻接列表中相邻点列表的长度吗?
- docker - MLflow 1.2.0 定义 MLproject 文件
- c - 结构如何与 ac 程序中的部分属性映射?
- asp.net - 如何转换 IEnumerable 中所有项目的特定列值?