我在Matlab中通過調用以下命令創建二維圖:imagesc(vector1, vector2, mat_weights)
。然後,我運行colorbar
命令。在Matlab圖像中添加單元格之間的空間c輸出
我現在有一個平滑的二維圖,但我想單元格之間增加空間。以下是我希望它看起來:
如何添加細胞/盒之間的這種間距?
我在Matlab中通過調用以下命令創建二維圖:imagesc(vector1, vector2, mat_weights)
。然後,我運行colorbar
命令。在Matlab圖像中添加單元格之間的空間c輸出
我現在有一個平滑的二維圖,但我想單元格之間增加空間。以下是我希望它看起來:
如何添加細胞/盒之間的這種間距?
您可以使用imagesc
以外的其他功能在色塊之間添加空格。這裏,scatter
提供了一個簡單的解決方案,當使用選項「填充」和標記「方形」時。
請注意,您需要將2-D矩陣轉換爲向量,但不一定要縮放數據:scatter從數據中獲取最小值和最大值,並將它們分配給最小和最大顏色色彩地圖。
代碼
% 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
會給
EDIT
這裏是矩形矩陣的一段代碼。請注意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非常好Magla! – bla
非常感謝,這個伎倆! –
@Magla:快問!一旦我提供了一個非方形矩陣(對於軸自然而言具有適當的矢量長度),該代碼似乎就會崩潰。這應該如何適應?謝謝你的幫助! –
+1了有趣的問題。看看'cellplot',它不會是直接的,但它應該工作。 – bla
@natan感謝您的幫助 - 我會看看。如果你有使用cellplot的經驗,我會很感激你能發佈一些相關的示例代碼!另一方面, –
,'pcolor'也可能工作...如果今天沒有人會給你答案,我會盡力爲你解決這個問題。 – bla