散点图所覆盖的matplotlib轴刻度标签(使用刺)

时间:2015-09-18 12:59:35

标签: python matplotlib plot scatter

我想让我的轴穿过散点图中的原点(0,0),这就是为什么我在下面的例子中设置了刺的位置。问题是我在散点图上的实际数据点覆盖了轴刻度标签,因此无法看到它们。

如何让matplotlib用我的轴刻度标签'覆盖'数据点,以便可以看到它们?

import numpy as np
from matplotlib import pyplot as plt
plt.style.use('ggplot')


x = np.random.randn(5000)
y = np.random.randn(5000)

f, ax = plt.subplots()
plt.scatter(x,y)
ax.spines['left'].set_position('zero')
ax.spines['left'].set_color('black')
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_position('zero')
ax.spines['bottom'].set_color('black')
ax.spines['top'].set_color('none')

plt.show()

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以通过将散布的zorder设置为<0

来解决此问题

例如:

plt.scatter(x,y,zorder=-5)

不幸的是,即使这样,它们在ggplot样式中也不是很明显:

enter image description here

如果更改散点图和标签的颜色(注意标签明显位于下图中的散点图上方),您可以更清楚地看到,因此您可能需要尝试找到您喜欢的内容< / p>

ax.tick_params(labelcolor='r')
plt.scatter(x,y,color='w',zorder=-5)

enter image description here

答案 1 :(得分:0)

另一种选择是添加

ax.set_axisbelow(False)

执行plt.scatter()后,输出为

axis zorder