1

ドラッグ可能な凡例を複数の軸と組み合わせて使用​​するときに発生する問題の解決策があるかどうか疑問に思っています。

gridspecとfigure(matplotlib 1.0.1、qt4バックエンド)を使用して2つの軸を作成しています–pyplotはありません。凡例を一方の軸からもう一方の軸にドラッグして解放すると、そのドラッグ機能は機能しなくなります。

凡例の一部が軸の境界の外側にある場合、その部分をクリックすることで凡例を取得できますが、軸内の凡例の任意の領域をマウスでクリックした場合は取得できません。

Adam Fraserの元のコードを試しましたが、凡例がアプリの2番目の軸の下に滑り込んでしまいました。

私のアプリは本当に非常に大きいです-ここに表示するには大きすぎるので、問題を説明するために、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()

これは、2つの軸と2つの凡例を持つプロットを生成します。

コードを実行し、凡例をドラッグして効果を確認します(問題がない場合は、私が食べたものである必要があり、お詫びします)。

解決策はかなり低レベルかもしれないと思いますが、誰が知っているでしょう、多分それは簡単な修正ですか?

助けてくれてありがとう。

4

1 に答える 1

0

問題を再現しました。エイリアン フィギュアに入る凡例の部分は、フィギュアがマウス位置イベントをキャッチし、他のハンドラーに再送信しないかのように、クリックできなくなります。

問題を再現する最小限のコード (ipython -pylab で実験するため) は次のとおりです。

In [16]: f211 = plt.subplot(211)
In [17]: f212 = plt.subplot(212)
In [18]: p1 = plot([1,2], label="test1")
In [20]: leg = legend(loc=(0.5,0.5))
In [21]: d = leg.draggable(state=True, use_blit=True)
于 2011-11-28T16:26:20.800 に答える