2013-03-27 79 views
2

我目前只是在图中添加一些点并为每个特定点添加注释。但是,每次尝试时,只有一部分注释实际显示在我的屏幕上。其他注释是通过调试和打印“在那里”,但由于某些原因它们不可见。有什么我做错了吗?Matplotlib隐形注释

import matplotlib.pyplot as plt 

self.fig = plt.figure() 
self.ax = self.fig.add_subplot(111, projection='polar') 

li = [[0.2, 1], [0.4, 1], [0.6, 1], [0.8, 1], [1, 1]] 

for x,y in li: 
    point, = self.ax.plot(x, y, marker='o', color='r', markersize=12) 
    annotation = self.ax.annotate("Comment goes here", 
     xy=(x,y), xycoords='data', 
     xytext=(x,y), textcoords='data' 
) 

self.fig.canvas.draw() 

一些调试后,似乎卸下projection='polar'修复这个问题,所有的注释显示出来。是否有特定的极坐标图,会导致错误的注释?

编辑:其实,我可能已经简化了这个问题..我尝试了简化版本的程序,它的工作。我正在构建一个基于matplotlib和gtk +的现有框架,所以可能还有一些我不知道的其他隐藏问题。

编辑2:我已经查明了这个问题。看起来,在我的更新函数中,如果我将图(半径)的ylim设置为1(与所有点相同),则某些注释消失。不知道为什么,但是如果我单独离开ylim,它会起作用。

回答

2

enter image description here

没有摄制我在matplotlib.__version__ 1.3.x中,所有的注释在指定位置显示出来。

+0

啊我使用的是1.0.1版本,我不知道它是否是旧版本中的错误..感谢您的输入! – Jin 2013-03-27 02:06:33

+0

其实,有趣的是,我可能已经在原始帖子中过度简化了该问题..我尝试了该程序的简化版本,并且它仍然有效。我正在构建一个基于matplotlib的现有框架,所以可能还有一些其他隐藏的问题,我不知道。 – Jin 2013-03-27 02:17:18