【问题标题】:Axes keeps chaning size with imshowAxis 使用 imshow 不断改变大小
【发布时间】:2013-04-24 23:44:13
【问题描述】:

我正在使用 imshow 绘制一个表示字母“A”的逻辑数组。我还有一个编辑框,用户可以在其中输入值来描述 x 和 y 方向上的切片数;即 10,10。 GUI 启动时,默认值为 10,10。如果我更改任何一个数字,新的逻辑数组将显示为 imshow 但现在它比我已经放置在 GUI 中的轴大。我已经包含了一些屏幕截图来显示正在发生的事情。此外,我注意到像素图图像大于我最初拥有的轴的大小(与示例图像的轴大小相同)。有没有办法解决这些问题?我想不通。

【问题讨论】:

  • 我不确定我是否理解问题所在,但您是否尝试过 interpolation='none'?此外,pcolormesh() 可能会满足您的需求。
  • 无论网格大小如何,我基本上都希望图像大小保持不变。字母“A”的像素表示并未完全显示在轴上,看起来像是按比例放大的。我尝试了您的建议,但没有奏效。

标签: image matlab axes


【解决方案1】:

问题似乎在于像素图被限制在 x 限制和 y 限制不够宽的轴上,可能是:

xlim = [1,10]
ylim = [1 10]

要解决此问题,请尝试以下操作:

set(axH, 'XLim', [1 xGrid])
set(axH, 'YLim', [1 yGrid])

其中axH 是右图中像素图的句柄,xGridyGrid 是您的像素图尺寸(例如,第二个示例中的 10 和 20)。

如果由于某种原因您无法访问轴句柄,您可以尝试使用直接修改它

xlim([1 xGrid])
ylim([1 yGrid])

绘制像素图后立即。

【讨论】:

  • 这种工作。如果我将网格大小更改为 5,5,则像素图不会完全显示。这是字母“A”的顶部。 i38.tinypic.com/6jpkz5.jpg
猜你喜欢
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-20
  • 2012-11-10
  • 2022-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多