Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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
在Matlab imagesc输出中添加单元格之间的空间_Matlab_Graphics_Plot_Matlab Figure - Fatal编程技术网

在Matlab imagesc输出中添加单元格之间的空间

在Matlab imagesc输出中添加单元格之间的空间,matlab,graphics,plot,matlab-figure,Matlab,Graphics,Plot,Matlab Figure,我通过调用以下命令在Matlab中创建二维绘图:imagesc(vector1,vector2,mat_weights)。然后,我运行colorbar命令 我现在有一个平滑的2D绘图,但我想在单元格之间添加空间。以下是我希望它的外观: 如何在单元格/方框之间添加这样的间距?您可以使用imagesc以外的其他功能在色块之间添加间距。这里,scatter在与选项“filled”和标记“square”一起使用时提供了一个简单的解决方案 请注意,您需要将二维矩阵转换为向量,但不必缩放数据:散射从数据中

我通过调用以下命令在Matlab中创建二维绘图:
imagesc(vector1,vector2,mat_weights)
。然后,我运行
colorbar
命令

我现在有一个平滑的2D绘图,但我想在单元格之间添加空间。以下是我希望它的外观:


如何在单元格/方框之间添加这样的间距?

您可以使用
imagesc
以外的其他功能在色块之间添加间距。这里,
scatter
在与选项“filled”和标记“square”一起使用时提供了一个简单的解决方案

请注意,您需要将二维矩阵转换为向量,但不必缩放数据:散射从数据中获取最小值和最大值,并将其指定给颜色贴图的最小值和最大值

代码

% 2-D in 1-D:
Z = diag(1:10); %example of 2-D matrix to be plotted
C = reshape(Z,1,[]); %1-D transform for vector color

% input definition
sz_matrix = 10;
X = repmat( (1:sz_matrix), 1, sz_matrix);
Y = kron(1:sz_matrix,ones(1,sz_matrix));
S = 1000;                  % size of marker (handle spaces between patches)
%C = (X.^2 + Y.^2);        % second color scheme

%plot      
figure('Color', 'w', 'position', [10 10 600 400]);  
scatter(X, Y, S, C, 'fill', 's');  
set(gca, 'XLim', [0 11], 'YLim', [0 11]);  
axis square;  
colormap summer  
colorbar
将给予

编辑

这是一段矩形矩阵的代码。请注意Y轴方向的反转,以便图形表示匹配
disp(Z)
。要在分隔色块的白色区域中具有相似的(x,y)比例,可以尝试手动调整图形大小

Z = diag(1:10); %example of 2-D matrix to be plotted
Z = Z(1:end-2,:); %trim for rectangular

% input definition
X = repmat(1:size(Z,2), 1, size(Z,1));
Y = kron(1:size(Z,1),ones(1,size(Z,2)));
C = reshape(Z',1,[]); %1-D transform for vector color
S = 1000;                  % size of marker (handle spaces between patches)

%plot      
figure('Color', 'w');  
scatter(X, Y, S, C, 'fill', 's'); 

set(gca, 'XLim', [0 size(Z,2)+1], 'YLim', [0 size(Z,1)+1]);  
colormap jet  
colorbar
set(gca, 'YDir','reverse'); 
输出:


+1了解有趣的问题。看看
cellplot
,它不会很简单,但应该能用。@natan谢谢你的帮助-我来看看。如果您有使用cellplot的经验,如果您能发布一些相关的示例代码,我将不胜感激!另一方面,
pcolor
也可以工作。。。如果今天没人给你答案,我以后会帮你解决。@natan谢谢,我非常感谢@纳坦,请用散射法看答案。@Magla:快问!一旦我提供了一个非平方矩阵(当然,轴有适当的向量长度),这个代码似乎就崩溃了。这应该如何适应?谢谢你的帮助@Maxim Zaslavsky请查看处理非方矩阵的编辑版本。为了使代码更通用,我们可以做很多工作,例如,白色区域比例或与矩阵大小相对应的补丁大小。@Magla:非常感谢!我不需要这个项目,但如果你有机会,我会很感激你能给我指一些资源或代码,让更多的定制到这个代码中,就像你提到的其他两个例子。虽然不是很关键,但还是要谢谢你!