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

    
    
  • 相关阅读:
    Thrift的安装以及问题
    nodejs安装和配置
    angularjs ng-bind-html中的ng-model不生效
    设计模式之美---接口和抽象类的区别
    angular 8 不兼容IE11
    Xamarin 打包生成 Android apk 文件
    微服务的4个设计原则和19个解决方案
    RESTful API设计规范
    windows下 安装 rabbitMQ
    关于C#应用的授权认证
  • 原文地址:https://www.cnblogs.com/beatets/p/8452663.html
Copyright © 2011-2022 走看看