Matplotlib:Scatterplot和热图在同一个图中

时间:2017-02-07 00:29:00

标签: numpy matplotlib

我正在尝试在同一个图中进行散点图和热图。 散点图如下:

examples, targets  = zip(*list(blue_data()))
examples2, targets2  = zip(*list(red_data()))
plt.plot(np.array(examples), np.array(targets), 'o', color = 'b')
plt.plot(np.array(examples2), np.array(targets2), 'o', color = 'r')

以上工作正常。我也想做一个热图。如果我在一个单独的子图中执行它,它的工作正常。但是,我想尝试在同一个图上做两个,共享相同的轴并且不确定如何做到这一点。这是热图的代码:

x = np.linspace(lower_x, upper_x, 100)
y = np.linspace(lower_y, upper_y, 100)
X, Y = np.meshgrid(x, y)
Z = np.zeros((x.size,y.size))
for ii in range(len(x)):
    for jj in range(len(y)):
        X_ = X[ii,jj];
        Y_ = Y[ii,jj];
        Z[ii,jj] = some_function(X_,Y_)
cmap = mpl.colors.ListedColormap(['r', 'b'])
bounds = [-100,0,100]
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)
plt.imshow(Z,cmap= cmap, norm = norm, extent = [-lower_x,upper_x,-lower_y,upper_y], origin = 'lower');

如何将这两个图组合在一起,使它们出现在具有对齐轴的相同图上?

0 个答案:

没有答案