现在,这部分代码给我提供了每个地图区域的每个单元格的数字,甚至是在这些没有数据的区域。如何只显示初始表中有数值的区域?
import matplotlib as mpl
import matplotlib.pyplot as plt
import geopandas as gpd
import pandas as pd
...
variable = 'price'
vmin, vmax = 10,90
fig=plt.figure(figsize=(12,12))
axK = fig.add_subplot(2,2,1)
mergedK.plot(column=variable, cmap='Blues',
vmin=vmin,
vmax=vmax,
linewidth=0.8, ax=axK, edgecolor='0.8')
for _,region in mergedK.iterrows():
axK.annotate(region['price'],
xy=(region.geometry.centroid.x,
region.geometry.centroid.y),fontsize=8)
plt.show()
最新的GeoPandas(0.7.0)会自动处理缺失的数值。最简单的方法是更新。默认情况下,缺失的值不会显示在地图上,但你可以指定样式kwargs来以你喜欢的方式显示它们。请看 文件 了解更多细节。
要跳过缺失值的注释,只需将此条件添加到你的循环中。
for _,region in mergedK.iterrows():
if pd.notna(region['price']):
axK.annotate(region['price'],
xy=(region.geometry.centroid.x,
region.geometry.centroid.y),fontsize=8)