matplotlib中的信号特定点

时间:2014-03-27 11:35:31

标签: python matplotlib

拥有如下基本图表:

import matplotlib.pyplot as plt
import numpy as np

y = np.array([1,2,3,4,5,6])
f, ax = plt.subplots()
ax.plot(y)
plt.show()

...有没有办法创建一个小箭头,让我们说,进入障碍点" 3"和" 5"?我有这个需要,因为我使用金融系列,我想用小箭头突出显示一些事件发生的点(根据布尔出现的真实/错误列表)。因此,在我上面提到的情况下,并发列表将是[False, False, True, False, True, False],但我想这足以将矢量乘以原始数组,以便我得到标记正确的高度。 Here是一个更复杂的网络示例,可以提供视觉概念。提前致谢

1 个答案:

答案 0 :(得分:1)

在matplotlib中,您可以使用文本注释annotate your graph suitably。下面的代码显示了一个简单的示例,其中我在线性图中注释了第三个点。显然,如果您在自己的代码中执行此操作,则可以提供更智能的方法来选择箭头点和文本的x,y协调。

import matplotlib.pyplot as plt
import numpy as np

y = np.array([1,2,3,4,5,6])

f, ax = plt.subplots()

ax.plot(y, linestyle='None', marker='o')


for i in [2, 3, 4]:
    ax.annotate('', xy=(i-1, i), xytext=(i-1,i+0.5),
                arrowprops=dict(facecolor='black',
                                width=1,
                                shrink=0.1))

plt.margins(0.1)
plt.show()

编辑我修改了代码,将文本注释删除为空字符串。

Example plot