Matlab—颜色图、簇状堆积柱状图和阴影Error Bar

Matlab里内置了很多绘图函数,也有很多开源的可以下载(Google很容易检索到)。这里介绍三种最近碰到的主要用于Paper里的几种图,有的可以用Excel绘制,但是相当繁琐,有那个时间去百度去谷歌,不如直接Matlab(或者其他很多工具像Origin,Suffer,R语言和Python等),写点code,一劳永逸。直入正题:

1. 颜色图

主要的函数是imagesc


运行如下代码可直接看到大体效果:

A = rand(6, 12);
imagesc(A);
set(gca, 'XTick',  [1:12]);
4025027-e13545debdc93898.jpg
color map.jpg

然而实际应用过程中,纵横坐标很可能是字符串,而且我们都习惯从Excel里copy这些数据,现在我们把这些字符串从Excel里复制到Matlab里,然后以这些字符串为纵横坐标。
运行下面代码先新建一个cell:

x = cell(12, 1);  %横坐标
y = cell(6, 1);  %纵坐标

然后双击工作区里的cell,复制excel里的数据,右击选择粘贴Excel数据(Ctrl+Shift+V)粘贴到cell里即可。
然后我们再运行以下代码(上面的图先不要关闭,如果关了的话重新运行上面的代码即可)

set(gca,'XTickLabel', x); 
set(gca,'YTickLabel', y); 

最终效果如下:

4025027-311d5b14d43f320f.jpg
最终效果.jpg

完整代码如下:

A = rand(6, 12);
imagesc(A);
set(gca, 'XTick',  [1:12]);

%这一步要从Excel里复制,或者可以直接在Matlab里编辑
x = cell(12, 1);  %横坐标
y = cell(6, 1);  %纵坐标

set(gca,'XTickLabel', x); 
set(gca,'YTickLabel', y); 

2. 簇状堆积柱状图

主要的函数是plotBarStackGroups,需要从网上下载,点这里。下载完成后放到默认路径里。


假如我们有下面的Excel数据(12×6):

4025027-26da5d5eabd09558.jpg
rawData.jpg

然后我们想横坐标是A-L代表不同的组,每组有甲乙丙三个柱子,每个甲乙丙柱子上累加有一X和二X。我么把这个12×6数组复制粘贴存为Matlab变量 B,当然也可以自己在Matlab里随机生成类似的随机数(e.g., B = randi([1,10],[12,6]) )
然后创建一个cell把A-L复制进去,也可以直接用上面的 x
然后运行以下代码:

C = reshape(B, [12 3 2]); % 将数据B转换为一个12行3列2页的三维数组
plotBarStackGroups(C,x); % 绘制一个12个以x为group标签的,每个组有甲乙丙3根柱子的,每个柱子上累计的图

开始效果图如下,注意这个函数不完美,并没有把颜色给区分开,也没有图例。
我们可以在这个图形界面下直接添加修改即可(具体比较简单,跟其他软件一样)


4025027-dfae084254a97f79.jpg
开始效果图.jpg
4025027-cbd61e3275f4f5f5.jpg
效果设置.jpg

3. 阴影error bar图

主要函数是shadedErrorBar, 需要下载,点这里


运行如下代码:

clc;        %把命令窗口里的都清掉啊
clear all;  %把工作区里的变量都清掉啊
x = [1:20]';
y = randi([10,30],[20,1]); %随机数
error = randi([1,5],[20,1]); %随机数
shadedErrorBar(x,y,error,'-db'); %蓝色,菱形(diamond) 
4025027-b52648d13134a868.jpg
shadedErrorBar.jpg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值