【问题标题】:Matplotlib invisible annotationsMatplotlib 不可见注解
【发布时间】:2013-03-27 00:23:42
【问题描述】:

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

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+ 之上的现有框架,因此可能还有一些我不知道的其他隐藏问题。

Edit2:我已经找到了问题所在。看来,在我的更新函数中,如果我将图形(半径)的 ylim 设置为 1(与所有点相同),那么一些注释就会消失。不知道为什么,但如果我不理会 ylim,它就会起作用。

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    在matplotlib.__version__ 1.3.x 上没有对我的复制,您的所有注释都显示在指定的位置。

    【讨论】:

    • 啊,我用的是1.0.1版本,不知道是不是老版本的bug..谢谢你的意见!
    • 实际上,有趣的是,我可能在原始帖子中过度简化了问题。我尝试了该程序的简化版本,但它仍然有效。我正在研究基于 matplotlib 构建的现有框架,因此可能还有其他一些我不知道的隐藏问题。
    猜你喜欢
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    相关资源
    最近更新 更多