python:scatter不显示

时间:2016-05-04 08:26:56

标签: python matplotlib scatter-plot

我在python中使用scatter时遇到了一些麻烦。我有2个纬度和经度大小为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°纬度投影圆)。但是当我想添加数据时,不会显示任何内容。

我在哪里不使用散点图?

1 个答案:

答案 0 :(得分:1)

我发现了什么问题。

同时使用选项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')