【发布时间】:2011-07-22 09:39:07
【问题描述】:
我想知道是否有人可以解决我在将可拖动图例与多个轴结合使用时遇到的问题。
我正在使用 gridspec 和 figure(matplotlib 1.0.1,qt4 后端)来创建 2 个轴 - 没有 pyplot。当图例从一个轴拖到另一个轴并释放时,它的可拖动性停止工作。
如果图例的一部分在轴的边界之外,则可以通过单击该部分来拾取图例,但如果在轴内的图例的任何区域上单击鼠标则不能。
我尝试了Adam Fraser’s original code,但图例会滑到我的应用程序的第二个轴下。
我的应用程序确实很大 - 太大而无法在此处显示,为了说明问题,我修改了 Matplotlib Legend Guide 中的一些代码(使用 pyplot),如下所示:
from matplotlib.pyplot import *
subplot(211)
plot([1,2,3], label="test1")
plot([3,2,1], label="test2")
leg=legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3,
ncol=2, mode="expand", borderaxespad=0.)
leg.draggable(state=True, use_blit=True)
subplot(223)
plot([1,2,3], label="test1")
plot([3,2,1], label="test2")
leg=legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
leg.draggable(state=True, use_blit=True)
show()
它会生成一个带有几个轴和两个图例的图。
运行代码,左右拖动图例看看效果(如果没有问题,一定是我吃的东西,我道歉)。
我怀疑一个解决方案可能相当低级,但谁知道呢,也许这是一个简单的修复?
感谢您的帮助。
【问题讨论】:
-
+1 描述是正确的。没有答案。
标签: python qt4 matplotlib legend