绘制一个框大小改变的表格

sop*_*pin 5 plot r matlab-figure

有谁知道这种图表是如何绘制的?好像热图.然而,不是使用颜色,而是使用每个单元的大小来指示幅度.我想绘制一个这样的图,但我不知道如何实现它.这可以在R或Matlab中完成吗? 在此输入图像描述

ana*_*ana 3

尝试分散:

scatter(x,y,sz,c,'s','filled');
Run Code Online (Sandbox Code Playgroud)

其中 x 和 y 是每个正方形的位置,sz 是大小(必须是与 x 和 y 长度相同的向量),c 是一个 3xlength(x) 矩阵,其中包含每个条目的颜色值。绘图的标签可以使用 set(gcf, properties ) 或 xticklabels 输入:

X=30;
Y=10;
[x,y]=meshgrid(1:X,1:Y);
x=reshape(x,[size(x,1)*size(x,2) 1]);
y=reshape(y,[size(y,1)*size(y,2) 1]);

sz=50;
sz=sz*(1+rand(size(x)));
c=[1*ones(length(x),1) repmat(rand(size(x)),[1 2])];
scatter(x,y,sz,c,'s','filled');

xlab={'ACC';'BLCA';etc}
xticks(1:X)
xticklabels(xlab)
set(get(gca,'XLabel'),'Rotation',90);
ylab={'RAPGEB6';etc}
yticks(1:Y)
yticklabels(ylab)
Run Code Online (Sandbox Code Playgroud)

编辑: yticks & co 仅适用于 >R2016b,如果您没有较新的版本,则应该使用 set 代替:

set(gca,'XTick',1:X,'XTickLabel',xlab,'XTickLabelRotation',90) %rotation only available for >R2014b
set(gca,'YTick',1:Y,'YTickLabel',ylab)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 好的。您应该将 `xticks`、`xticklabels`、`yticks`、`yticklabels` 替换为 `set` 或 HG2 命令(即 `ax = gca、ax.XTick` 等等...),因为此代码会生成错误。 (2认同)