sop*_*pin 5 plot r matlab-figure
有谁知道这种图表是如何绘制的?好像热图.然而,不是使用颜色,而是使用每个单元的大小来指示幅度.我想绘制一个这样的图,但我不知道如何实现它.这可以在R或Matlab中完成吗?
尝试分散:
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)