gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 19:57:25 62 4
gpt4 key购买 nike

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

我现在有一个平滑的 2D 图,但我想在单元格之间添加空间。这是我想要的样子:

Here's how the spacing should look

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

最佳答案

您可以使用 imagesc 之外的其他函数在色 block 之间添加空格。在这里,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

会给予

enter image description here

编辑

这是一段用于矩形矩阵的代码。请注意 Y 轴方向的反转,以便图形表示与 disp(Z) 匹配。要在分隔色 block 的白色区域中具有相似的 (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');

输出:

enter image description here

关于matlab - 在 Matlab imagesc 输出中的单元格之间添加空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17825819/

62 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com