在轴顶部绘制标记

时间:2012-02-09 22:44:57

标签: python numpy matplotlib

我想用numpy做一个(x,y)散点图。现在,轴从(0,0)开始并延伸以与数据范围对齐。我需要绘制两个位于x = 0线上的点。

目前看来,符号正在轴之前绘制,随后被轴截断。我希望这出现在轴的顶部。我相信我可以用'标签'做点什么,但我找不到任何方法来完成这项工作。

标记有些可见,但它们是可视化中非常重要的组成部分。如果某人有一个解决方案,这将是美好的。

3 个答案:

答案 0 :(得分:10)

您可以关闭plt.plot创建的线对象的剪辑标志。

import numpy as np
import matplotlib.pyplot as plt
x = np.array([0,1,2,3,4,5,6])
y = np.array([0,2,0,4.5,0.5,2,3])

line = plt.plot(x,y,'o')[0]
line.set_clip_on(False)
plt.show()

enter image description here

答案 1 :(得分:2)

要实际让标记显示在轴的顶部,您可以使用zorder

import numpy as np
import matplotlib.pyplot as plt
x = np.array([0,1,2,3,4,5,6])
y = np.array([0,2,0,4.5,0.5,2,3])

plt.plot(x, y, 'o', zorder=10, clip_on=False)
plt.xlim(0, 6)
plt.ylim(0, 4.5)
plt.show()

The result

答案 2 :(得分:1)

我认为你在plt.axis([xmin,xmax,ymin,ymax])之后:

import numpy as np
import matplotlib.pyplot as plt
x = np.array([0,1,2,3,4,5,6])
y = np.array([0,2,0,4.5,0.5,2,3])
plt.plot(x,y,'o')
plt.axis()
# (0.0, 6.0, 0.0, 4.5)
plt.axis([-.5,6.5,-.5,5])
plt.show()

enter image description here

您可以使用plt.axis()以编程方式检索当前轴,然后减去/添加一个小边距,然后重新设置它。