要实现“Basemap m.scatter不允许点出现在地图上并保留fillcontinents颜色”,可以通过以下代码示例来解决:
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
# 创建Basemap对象
m = Basemap(projection='mill', llcrnrlat=-90, urcrnrlat=90, llcrnrlon=-180, urcrnrlon=180, resolution='c')
# 绘制地图
m.fillcontinents(color='lightgray', lake_color='white')
# 创建散点图
lats = [30, 40, 50, 60]
lons = [-100, -80, -60, -40]
# 将点绘制在地图上并保留fillcontinents颜色
x, y = m(lons, lats)
m.scatter(x, y, marker='o', color='red')
# 显示图形
plt.show()
这段代码首先创建了一个Basemap对象,并设置了地图的投影方式、范围、分辨率等参数。然后使用m.fillcontinents()
方法绘制地图的陆地颜色。接下来,定义了一些散点的纬度和经度坐标。通过调用m()
方法将经纬度坐标转换为地图上的坐标,并使用m.scatter()
方法将这些点绘制在地图上,同样使用了color
参数来设置点的颜色。最后,调用plt.show()
来显示图形。
这样,就可以在地图上绘制散点,并保留fillcontinents的颜色。