Getting the pixel coordinates of text or ticks in matplotlib

Posted 蠢材少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Getting the pixel coordinates of text or ticks in matplotlib相关的知识,希望对你有一定的参考价值。

The exact pixel coordinates of title, labels, legends or ticks are important information for the training data of deep learning. 

 

import numpy as np
import matplotlib.pyplot as plt

plt.plot([1,2],label="first_image")
plt.plot([2,1],label="second_image")
leg = plt.legend()

tit = plt.title("sss")
xla = plt.xlabel("xxx")

plt.gcf().canvas.draw()
ticks = [t for t in plt.gca().get_xticklabels()]

print(tit.get_text(),str(tit.get_window_extent()))    # return the context and pixel coordinates of \'tit\'
print(np.array(tit.get_window_extent()))
print(xla.get_text(),str(xla.get_window_extent()))

for i, t in enumerate(ticks):
    print ("Label "+str(i)+", data: "+t.get_text()+str(t.get_window_extent()))

print ("Legend location: "+str(leg.get_window_extent()))
for i, l in enumerate(leg.texts):
    print ("Label "+str(i)+", data: "+l.get_text()+str(l.get_window_extent()))
    pass
#plt.savefig("test.png")
plt.show()
sss Bbox(x0=211.8375, y0=256.44, x1=230.9625, y1=269.44)
[[ 211.8375  256.44  ]
 [ 230.9625  269.44  ]]
xxx Bbox(x0=212.5875, y0=5.0, x1=230.2125, y1=15.0)
Label 0, data: Bbox(x0=69.21818181818182, y0=29.0, x1=69.21818181818182, y1=29.0)
Label 1, data: 0.0Bbox(x0=61.21818181818182, y0=19.0, x1=77.21818181818182, y1=29.0)
Label 2, data: 0.2Bbox(x0=122.0909090909091, y0=19.0, x1=138.0909090909091, y1=29.0)
Label 3, data: 0.4Bbox(x0=182.9636363636364, y0=19.0, x1=198.9636363636364, y1=29.0)
Label 4, data: 0.6Bbox(x0=243.83636363636367, y0=19.0, x1=259.83636363636367, y1=29.0)
Label 5, data: 0.8Bbox(x0=304.70909090909095, y0=19.0, x1=320.70909090909095, y1=29.0)
Label 6, data: 1.0Bbox(x0=365.5818181818182, y0=19.0, x1=381.5818181818182, y1=29.0)
Label 7, data: Bbox(x0=69.21818181818182, y0=29.0, x1=69.21818181818182, y1=29.0)
Legend location: Bbox(x0=276.05, y0=127.31375, x1=383.8, y1=162.12625)
Label 0, data: first_imageBbox(x0=308.05, y0=147.22, x1=363.925, y1=158.12625)
Label 1, data: second_imageBbox(x0=308.05, y0=131.31375, x1=379.8, y1=142.22)

 

 

reference:

1. https://matplotlib.org/api/text_api.html#matplotlib.text.Annotation.get_window_extent

2. https://matplotlib.org/api/transformations.html#matplotlib.transforms.Bbox

 


以上是关于Getting the pixel coordinates of text or ticks in matplotlib的主要内容,如果未能解决你的问题,请参考以下文章

Get a specific pixel coordinates where your mouse on (cc)

The Microsoft Distributed Transaction Coordinator (MS DTC) has cancelled the distributed transaction

RuntimeError: The following handlers are available to decode the pixel data however they are missing

RuntimeError: The following handlers are available to decode the pixel data however they are missing

Classify the pixels into two sets (像素点的分类)

FLinkFlink 消费 kafka 消费组 死掉 Marking the coordinator dead for group 造成数据重复消费