#添加各个国家边界线
#获取各个国家信息
for record in reader.records():
#添加国家边界线到地图上
ax.add_geometries(record.geometry, PlateCarree())
plt.show()
报错为:TypeError: 'Polygon' object is not iterable
这怎么修改啊,我跟网课写的一样,网课的运行了以后是一个世界地图,我的就是报错了,这是怎么回事呢
报错信息是在这一行吗?
ax.add_geometries(record.geometry, PlateCarree())
PlateCarree() 返回啥?
import matplotlib.pyplot as plt
from cartopy.crs import PlateCarree
from cartopy.io import shapereader
from matplotlib.cm import YlOrRd
from matplotlib.colors import rgb2hex, Normalize
from matplotlib.colorbar import ColorbarBase
# 获取文件路径信息
filename = shapereader.natural_earth(resolution='110m', category='cultural', name='admin_0_countries')
# print(filename)
# 创建地理文件阅读器对象
reader = shapereader.Reader(filename)
# 创建世界地图的绘图区
fig, ax = plt.subplots(figsize=(10, 8), subplot_kw={'projection': PlateCarree()})
# 添加各个国家的边界线
# 假设热度最大值为200
max_value = 200
# 获取各个国家的信息
for i, record in enumerate(reader.records()):
# 产生颜色
rgba = YlOrRd(i/max_value)
color = rgb2hex(rgba)
# 添加国家的边界线, 到地图上
ax.add_geometries(record.geometry, PlateCarree(), facecolor=color, edgecolor='k')
# 添加新绘图区
cax = fig.add_axes([0.92, 0.25, 0.025, 0.5])
# 创建归一化转换器
norm = Normalize(vmin=0, vmax=max_value)
# print(norm(200))
# 创建颜色条, 并添加到绘图区
ColorbarBase(cax, cmap=YlOrRd, norm=norm, label='颜色条')
plt.show()