我在python中使用分散语有些困难。我有两个大小为100的纬度和经度向量,还有一个在1到2之间对应数据的向量100。
我试图将这些数据显示在北极的立体投影地图上,但图中没有显示任何数据。这是我的代码:
import numpy as np
import matplotlib as mpl
from matplotlib import pyplot as plt
from matplotlib import colors as mpl_colors
from mpl_toolkits.basemap import Basemap`
lon=np.linspace(-180,180,num=100)
lat=np.linspace(75,75,num=100)
data=1+np.random.rand(100)
cmap = plt.cm.jet
norm_color = mpl_colors.Normalize(vmin=None, vmax=None, clip=False)
fig=plt.figure()
m = Basemap(projection='npstere',boundinglat=65,lon_0=310,resolution='l')
x,y = m(lon,lat)
m.scatter(x, y,marker='+',c=data,cmap=cmap, norm=norm_color,edgecolor='none')
plt.show()
当我只是分散坐标:m.scatter(x, y,marker='+')
时,它工作得很好(在相应的坐标上有"+“,即在75°纬度投影圆上)。但是,当我想要添加数据时,不会显示任何内容。
我在哪里不使用散射对吗?
发布于 2016-05-04 04:22:05
我发现了问题所在。
它是同时使用选项marker='+'
和edgecolor='None'
。
后者允许改变标记边缘的颜色。对于标记'+',边就是标记本身:这就是为什么没有显示它。
在替换行m.scatter(x, y,marker='+',c=data,cmap=cmap, norm=norm_color,edgecolor='none')
时,需要做以下工作:
m.scatter(x, y,marker='+',c=data,cmap=cmap, norm=norm_color)
或
m.scatter(x, y,marker='o',c=data,cmap=cmap, norm=norm_color,edgecolor='none')
https://stackoverflow.com/questions/37022316
复制