我有以下变量,我想在地图上绘制:Lons,经度列表,Lats,纬度列表和Vals,每个位置的值列表。
为了画出地点,我做了一个简单的
x,y=Mymap(Lons,Lats)
Mymap.scatter(x,y,marker='o',color='red')Q:如何最好地将转换为要传递给scatter的颜色列表(热图),以便每个x,y对都能得到与颜色匹配的值?
基本地图文档是相当缺乏的,并且没有一个例子适合我的目的。
我可能可以遍历我的整个Lats、Lons和Vals,但是考虑到基本地图的速度有多慢,我宁愿避免这样做。我已经画了大约800张地图,把地图增加到100万可能需要几年的时间。
发布于 2015-03-19 15:15:45
基地地图散布文件简单地引用了pyplot.scatter文档,在这里您可以找到参数c (强调pyplot.scatter文档):
c:颜色或颜色序列,可选,默认 c可以是单个颜色格式字符串,也可以是长度为N、的颜色规格序列,也可以是使用kwargs指定的cmap和范数映射到的N个数字序列(参见下文)。请注意,c不应该是单个数字RGB或RGBA序列,因为这与要重叠的值数组是无法区分的。C可以是一个二维数组,其中行是RGB或RGBA .
因此,如果简单地将vals传递给c,matplotlib应该在标准颜色映射或选择色图上将值转换为颜色。要显示映射到什么值的颜色,可以使用彩色棒。
示例代码:
import matplotlib.pyplot as plt
lons = range(50)
lats = range(25, 75)
vals = range(50,100)
plt.scatter(lons, lats, c=vals, cmap='afmhot')
plt.colorbar()
plt.show()https://stackoverflow.com/questions/29146662
复制相似问题