Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python matplotlib-如何添加像素大小图例?_Python_Matplotlib - Fatal编程技术网

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

Python matplotlib-如何添加像素大小图例?,python,matplotlib,Python,Matplotlib,然后我想添加一个指示距离的条。假设这是一幅用相机拍摄的真实图像,我知道每个像素对应1厘米。我想添加一个10 x 100像素的条,并添加一些文字,上面写着1m。有没有一个简单的方法可以做到这一点 谢谢在下面的示例中,我为您的问题提供了一个简单的解决方案。将其扩展到更一般的情况应该不太困难。这里最难找到的是pos\u tuple 由于pos\u tuple表示矩形的左上角,因此必须减去条形图本身的长度,然后仍保留一些填充,否则它将绘制在图形的最边缘,看起来很难看。因此,更一般的pos\u tuple

然后我想添加一个指示距离的条。假设这是一幅用相机拍摄的真实图像,我知道每个像素对应1厘米。我想添加一个10 x 100像素的条,并添加一些文字,上面写着1m。有没有一个简单的方法可以做到这一点


谢谢

在下面的示例中,我为您的问题提供了一个简单的解决方案。将其扩展到更一般的情况应该不太困难。这里最难找到的是
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()