Python 在matplotlib basemap中打印彩色编码标记
我想在地图上绘制以下变量:Python 在matplotlib basemap中打印彩色编码标记,python,matplotlib,matplotlib-basemap,Python,Matplotlib,Matplotlib Basemap,我想在地图上绘制以下变量: Lons,经度列表,Lats,纬度列表和Vals,每个位置的值列表 为了绘制位置,我做了一个简单的 x,y=Mymap(Lons,Lats) Mymap.scatter(x,y,marker='o',color='red') Q:如何最好地将我的VAL转换成一个颜色列表(热图)并传递到scatter,以便每个x,y对都能获得与颜色匹配的值 basemap文档相当缺乏,并且没有一个示例符合我的目的 我可能会在整个lat、Lons和Vals中循环,但考虑到basemap
Lons
,经度列表,Lats
,纬度列表和Vals
,每个位置的值列表
为了绘制位置,我做了一个简单的
x,y=Mymap(Lons,Lats)
Mymap.scatter(x,y,marker='o',color='red')
Q:如何最好地将我的VAL
转换成一个颜色列表(热图)并传递到scatter
,以便每个x,y
对都能获得与颜色匹配的值
basemap文档相当缺乏,并且没有一个示例符合我的目的
我可能会在整个lat
、Lons
和Vals
中循环,但考虑到basemap有多慢,我宁愿避免这样。我已经绘制了大约800张地图,将其增加到大约100万张可能需要几年的时间。简单地指的是,在这里可以找到参数c(我的重点):
c:颜色或颜色顺序,可选,默认
c可以是单色格式字符串,也可以是长度为N的颜色规范序列,或要使用kwargs指定的cmap和规范映射到颜色的N个数字序列(见下文)。请注意,c不应该是单个数字RGB或RGBA序列,因为它与要进行颜色映射的值数组不可区分。然而,c可以是一个二维数组,其中的行是RGB或RGBA
因此,如果只是将vals
传递给c,matplotlib应该将值转换为标准颜色映射或a上的颜色。显示映射到可以使用的值的颜色
示例代码:
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()
谢谢,行得通。我只是查阅了主要文档,因为我认为api部分是内部的,只有当你想真正改变一些东西的时候才有用。