zoukankan      html  css  js  c++  java
  • 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

    
    
  • 相关阅读:
    CookieUtil.java
    观察者模式
    ELK日志分析系统
    Zookeeper安装配置及简单使用
    Zookeeper
    MBMD(MobileNet-based tracking by detection algorithm)作者答疑
    python代码迷之错误(ModuleNotFoundError: No module named 'caffe.proto')
    深度学习中易混概念小结
    Python爬虫小结
    VOT工具操作指南(踩过的坑)
  • 原文地址:https://www.cnblogs.com/beatets/p/8452663.html
Copyright © 2011-2022 走看看