如何在MATLAB pcolor图中仅绘制一些线?

时间:2012-02-28 14:06:21

标签: matlab plot visualization

我有一个用pcolor可视化的块矩阵。我想以某种方式可视化块结构,所以我在寻找每个块内shading flat和边界shading faceted之间的混合,类似

a | b c | d e f
- + - - + - - -
g | h i | j k l
m | n o | p q r

(其中每个字母代表一个颜色值,而这些线分隔了这些块) 如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

您可以使用imagescimshow(根据需要使用axis xyaxis ij)。然后,只需将xtickytick位置设置为您的行所需的位置,然后调用grid on

所以例如

imagesc(im);
grid;
set(gca, 'xtick', [1.5, 2.5, 5.5],...
         'ytick', [3.5, 4.5],...
         'gridlinestyle', '-');

注意:要更改图像绘制以便您可以使用整数网格线位置,您可以调用imagesc(0.5 : (size(im,1)-0.5), 0.5 : (size(im,2)-0.5), im),因为这会将像素位置偏移-0.5。 另外,虽然您可以更改轴linewidth属性,但我认为您无法直接访问网格线宽度 - 对于该级别的控制,您可能需要编写一个快速的小函数来添加可以提供的线条你完全控制每一条线;或者修改这个this script就可以了!