get_window_extent()
メソッドを使用すると、ウィンドウの座標でほとんどのアーティストの位置を取得できます。
この方法を使用するには、以前にキャンバスに描画されている必要があります。これはplt.gcf().canvas.draw()
によって手動でトリガーすることができます。
import matplotlib.pyplot as plt
plt.plot([1,2],label="first_image")
plt.plot([2,1],label="second_image")
leg = plt.legend()
plt.gcf().canvas.draw()
ticks = [t for t in plt.gca().get_xticklabels()]
for i, t in enumerate(ticks):
print "Label {}, data: {}".format(i, t.get_text()), t.get_window_extent()
print "Legend location: ", leg.get_window_extent()
for i, l in enumerate(leg.texts):
print "Label {}, {}".format(i, l.get_text()), l.get_window_extent()
plt.show()
これは
Label 0, data: Bbox(x0=102.545454545, y0=43.0777777778, x1=102.545454545, y1=43.0777777778)
Label 1, data: 0.0 Bbox(x0=91.6079545455, y0=29.0777777778, x1=113.482954545, y1=43.0777777778)
Label 2, data: 0.2 Bbox(x0=181.789772727, y0=29.0777777778, x1=203.664772727, y1=43.0777777778)
Label 3, data: 0.4 Bbox(x0=271.971590909, y0=29.0777777778, x1=293.846590909, y1=43.0777777778)
Label 4, data: 0.6 Bbox(x0=362.090909091, y0=29.0777777778, x1=384.090909091, y1=43.0777777778)
Label 5, data: 0.8 Bbox(x0=452.272727273, y0=29.0777777778, x1=474.272727273, y1=43.0777777778)
Label 6, data: 1.0 Bbox(x0=542.454545455, y0=29.0777777778, x1=564.454545455, y1=43.0777777778)
Label 7, data: Bbox(x0=102.545454545, y0=43.0777777778, x1=102.545454545, y1=43.0777777778)
Legend location: Bbox(x0=419.305555556, y0=214.431597222, x1=569.055555556, y1=260.768402778)
Label 0, first_image Bbox(x0=463.75, y0=241.072222222, x1=541.375, y1=255.212847222)
Label 1, second_image Bbox(x0=463.75, y0=219.987152778, x1=563.5, y1=234.127777778)
関連するすべての座標を出力します。注しかし、彼らはすべての再描画のために変更される可能性があるため、一般的には、図内の任意の操作のためにそれらの座標を使用する必要または推奨されていないこと。ユースケースによっては、特定の目標を達成するためのより良い方法があるかもしれません。
これらの座標は、必ずしも保存画像のピクセル座標である必要はありません。それらは画面上と保存された画像で異なるかもしれないdpi
の設定に依存します。保存に使用されるバックエンドはキャンバスを再描画し、座標を変更する可能性があります。
「位置を取得する」とはどういう意味ですか?あなたはラベルを移動するか、単にどこにいるのかを知りたいですか? – JB1
ピクセルがどこにあるのかを知りたいのですが、 – Drico
私はそれらのポジションを見つける目的について教えてくれると思います。私はあなたの質問に直接答えましたが、私はあなたが現在、そのピクセル位置が、おそらく別の方法を使ってより簡単に達成できる何かを達成するのに役立つかもしれないとあなたが考えると恐れています。 – ImportanceOfBeingErnest