簡體   English   中英

matplotlib-如何添加像素大小圖例?

[英]matplotlib - How to add pixel size legend?

import scipy as sp
import scipy.misc
lena = sp.misc.lena()

plt.imshow2(lena)

然后我想要添加一個指示距離的條形圖。 即假設這是用相機捕獲的實際圖像,我知道每個像素對應1cm。 我想添加一個10 x 100像素的欄,並在欄上方添加1m的文字。 有沒有簡單的方法可以做到這一點?

謝謝

在下面的示例中,我對您的問題進行了簡單的解決。 將其擴展到涵蓋更一般的情況應該不難。 最難的是pos_tuple

由於pos_tuple代表Rectangle左上角,因此您必須減去鋼筋本身的長度,然后仍然保留一些填充,否則它將被繪制在圖形的最邊緣,並且看起來很難看。 因此,更一般的pos_tuple看起來像

pos_tuple = (np.shape(lena)[0]-m2pix(1)-padding_right, np.shape(lena)[1]-m2pix(0.1)-padding_bottom)

這整個事情也可以改編成一個整潔的函數add_image_scale ,它將插入您的圖形並吐出一個具有“膠合”比例的圖形。 也可以將m2pix概括為接收刻度,而不是對其進行硬編碼。

import scipy as sp
import scipy.misc
import numpy as np

lena = sp.misc.lena()

def m2pix(pix): #it takes a 100 pix to make a meter
    return 100*pix

pos_tuple = (np.shape(lena)[0]-100-12, np.shape(lena)[1]-10-2)
rect = plt.Rectangle( pos_tuple, m2pix(1), m2pix(0.1))
plt.imshow2(lena)
plt.gca().add_patch(rect)

plt.show()

就添加文本而言,您可以使用都非常易於使用的注釋文本

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM