我在 python 中使用 scatter 时遇到一些问题。我有 2 个大小为 100 的纬度和经度向量,以及一个值在 1 和 2 之间的相应数据的向量 100。
我试图在北极立体投影 map 上显示这些数据,但图中没有显示任何内容。这是我的代码:
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° 处)纬度投影圆)。但是当我想添加数据时,什么也没有显示。
我在哪里没有使用分散权利?
最佳答案
我发现问题所在了。
它是同时使用选项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')
关于python:分散不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37022316/