问题在于,在Matplotlib图上给出的所有解决方案:删除轴,图例和空白实际上是要使用的
imshow。
因此,以下显然有效
import matplotlib.pyplot as pltfig = plt.figure()ax=fig.add_axes([0,0,1,1])ax.set_axis_off()im = ax.imshow([[2,3,4,1], [2,4,4,2]], origin="lower", extent=[1,4,2,8])ax.plot([1,2,3,4], [2,3,4,8], lw=5)ax.set_aspect('auto')plt.show()
并产生
但是在这里,您正在使用
scatter。添加散点图
import matplotlib.pyplot as pltfig = plt.figure()ax=fig.add_axes([0,0,1,1])ax.set_axis_off()im = ax.imshow([[2,3,4,1], [2,4,4,2]], origin="lower", extent=[1,4,2,8])ax.plot([1,2,3,4], [2,3,4,8], lw=5)ax.scatter([2,3,4,1], [2,3,4,8], c="r", s=2500)ax.set_aspect('auto')plt.show()
Scatter特殊之处在于,默认情况下matplotlib尝试使所有点可见,这意味着已设置轴限制,以使所有分散点在整体上可见。
为了克服这个问题,我们需要专门设置轴限制:
import matplotlib.pyplot as pltfig = plt.figure()ax=fig.add_axes([0,0,1,1])ax.set_axis_off()im = ax.imshow([[2,3,4,1], [2,4,4,2]], origin="lower", extent=[1,4,2,8])ax.plot([1,2,3,4], [2,3,4,8], lw=5)ax.scatter([2,3,4,1], [2,3,4,8], c="r", s=2500)ax.set_xlim([1,4])ax.set_ylim([2,8])ax.set_aspect('auto')plt.show()
这样我们就可以得到想要的行为。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)