Python matplotlib-如何添加像素大小图例?
然后我想添加一个指示距离的条。假设这是一幅用相机拍摄的真实图像,我知道每个像素对应1厘米。我想添加一个10 x 100像素的条,并添加一些文字,上面写着1m。有没有一个简单的方法可以做到这一点Python matplotlib-如何添加像素大小图例?,python,matplotlib,Python,Matplotlib,然后我想添加一个指示距离的条。假设这是一幅用相机拍摄的真实图像,我知道每个像素对应1厘米。我想添加一个10 x 100像素的条,并添加一些文字,上面写着1m。有没有一个简单的方法可以做到这一点 谢谢在下面的示例中,我为您的问题提供了一个简单的解决方案。将其扩展到更一般的情况应该不太困难。这里最难找到的是pos\u tuple 由于pos\u tuple表示矩形的左上角,因此必须减去条形图本身的长度,然后仍保留一些填充,否则它将绘制在图形的最边缘,看起来很难看。因此,更一般的pos\u tuple
谢谢在下面的示例中,我为您的问题提供了一个简单的解决方案。将其扩展到更一般的情况应该不太困难。这里最难找到的是
pos\u tuple
由于pos\u tuple
表示矩形的左上角
,因此必须减去条形图本身的长度,然后仍保留一些填充,否则它将绘制在图形的最边缘,看起来很难看。因此,更一般的pos\u tuple
如下所示
pos\u tuple=(np.shape(lena)[0]-m2pix(1)-右填充,
np.形状(lena)[1]-m2pix(0.1)-填充\u底部)
这整件事也可以被改编成一个简洁的函数添加图像比例
,它可以容纳你的身材,并吐出一个“粘”上比例的身材m2pix
也可以通用化以接收刻度,而不是硬编码
import scipy as sp
import scipy.misc
lena = sp.misc.lena()
plt.imshow2(lena)
至于添加文本,您可以使用or,两者都非常容易使用
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()