首页 > 解决方案 > 散点图点重叠轴

问题描述

出于某种原因,当我使用zorder散点图时,点的边缘与轴重叠。我尝试了 [here] 中的一些解决方案(散点图覆盖的 matplotlib 轴刻度标签(使用刺)),但它们对我不起作用。有没有办法防止这种情况发生?

我知道我也可以ax.axvline()在我的边界上添加一个,但这对于很多情节来说是一个烦人的解决方法。

xval = np.array([0,0,0,3,3,3,0,2,3,0])
yval = np.array([0,2,3,5,1,0,1,0,4,5])
zval = yval**2-4

fig = plt.figure(figsize=(6,6))

ax = plt.subplot(111)

ax.scatter(xval,yval,cmap=plt.cm.rainbow,c=zval,s=550,zorder=20)

ax.set_ylim(0,5)
ax.set_xlim(0,3)


#These don't work
ax.tick_params(labelcolor='k', zorder=100)
ax.tick_params(direction='out', length=4, color='k', zorder=100)

#This will work but I don't want to have to do this for the plot edges every time
ax.axvline(0,c='k',zorder=100)


plt.show()

在此处输入图像描述

标签: pythonmatplotlib

解决方案


对我来说,您链接到的解决方案有效;即,将散点图的 z 顺序设置为负数。例如

xval = np.array([0,0,0,3,3,3,0,2,3,0])
yval = np.array([0,2,3,5,1,0,1,0,4,5])
zval = yval**2-4

fig = plt.figure(figsize=(6,6))

ax = plt.subplot(111)

ax.scatter(xval,yval,cmap=plt.cm.rainbow,c=zval,s=550,zorder=-1)

ax.set_ylim(0,5)
ax.set_xlim(0,3)

plt.show()

坐标轴位于散点上方的测试图] 1


推荐阅读