【问题标题】:Scatter plot on matplotlib imshow not showingmatplotlib imshow 上的散点图未显示
【发布时间】:2023-01-18 17:21:06
【问题描述】:

我正在使用 matplotlib 来使用 imshow 显示矩阵。我正在使用以下代码来显示图像

plt.figure(figsize=(12,10))
ax = plt.gca()
im = plt.imshow(a,cmap=plt.cm.Reds, aspect=1,extent = [0.1,3.2,2.3,3.2])
divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="5%", pad=0.05)
plt.colorbar(im,cax=cax)
plt.plot(0.5,2.3,color='yellow',marker="*")

这产生了这个漂亮的情节

现在我想使用这样的坐标在某处添加一个正方形:

plt.scatter(0.5,2.3,color='yellow',marker="s")

但它只是没有显示在图片上,这可能是什么原因造成的?

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    您必须在 make_axes_locatable 之前移动您的附加地块,因为当前 Axes 发生变化:

    plt.figure(figsize=(12,10))
    ax = plt.gca()
    im = plt.imshow(a,cmap=plt.cm.Reds, aspect=1,extent = [0.1,3.2,2.3,3.2])
    plt.plot(0.5,2.3,color='yellow',marker="*")  # <- MOVE HERE
    divider = make_axes_locatable(ax)
    cax = divider.append_axes("right", size="5%", pad=0.05)
    plt.colorbar(im,cax=cax)
    

    或者使用ax.plot代替plt.plot

    【讨论】: