在Matplotlib中与Matlab的imagesc相当的函数是什么?

36

我来自Matlab背景,正在学习Python、numpy和matplotlib。在Matlab中我经常使用的一个函数是imagesc,那么在matplotlib中是否有类似的函数呢?我知道有imshowpcolor,其中第一个不允许您轻松设置坐标轴的单位,而第二个则需要您设置像素边界的x和y坐标,而不是像素中心,这对我来说不太直观。

总之,假设我有一张图片,我想用数值(如mm的距离)作为x和y轴的标签显示,那么在matplotlib中最简单的方法是什么?

1个回答

31

很有帮助,谢谢。我在imshow文档中忽略了那个kwarg。看起来extent参数设置图像边缘的坐标,对吗?所以这个任务无法解决的是将坐标分配给像素中心,如果这是我想要做的事情。 - Matt
1
extent文档中可以看到:“轴的数据限制。默认情况下,将基于零的行、列索引分配给像素的x、y中心。” 它默认按照您想要的方式执行。 话虽如此,我认为它可能在某些mpl版本之间发生了变化。 - tacaswell
我的意思是将我选择的坐标分配给像素中心,而不仅仅是像素编号。 - Matt
使用extent=[-.5 + x_start, x_end + .5, y_start - .5, y_end + .5] - tacaswell
请注意,@tcaswell的评论并不是普遍情况,只有当您的像素间距为1个单位时才有效。您应该使用0.5dx,其中dx是您的像素间距。因此,例如,如果您的像素间距为5毫米,则应执行以下操作:extent=[-2.5 + x_start, x_end + 2.5, y_start - 2.5, y_end + 2.5] - Caleb
@Caleb 在使用上帝赐予的像素单位工作 ;) - tacaswell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接