Matlab—顏色圖、簇狀堆積柱狀圖和陰影Error Bar

Matlab里內(nèi)置了很多繪圖函數(shù),也有很多開(kāi)源的可以下載(Google很容易檢索到)。這里介紹三種最近碰到的主要用于Paper里的幾種圖,有的可以用Excel繪制,但是相當(dāng)繁瑣,有那個(gè)時(shí)間去百度去谷歌,不如直接Matlab(或者其他很多工具像Origin,Suffer,R語(yǔ)言和Python等),寫(xiě)點(diǎn)code,一勞永逸。直入正題:

1. 顏色圖

主要的函數(shù)是imagesc


運(yùn)行如下代碼可直接看到大體效果:

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

然而實(shí)際應(yīng)用過(guò)程中,縱橫坐標(biāo)很可能是字符串,而且我們都習(xí)慣從Excel里copy這些數(shù)據(jù),現(xiàn)在我們把這些字符串從Excel里復(fù)制到Matlab里,然后以這些字符串為縱橫坐標(biāo)。
運(yùn)行下面代碼先新建一個(gè)cell:

x = cell(12, 1);  %橫坐標(biāo)
y = cell(6, 1);  %縱坐標(biāo)

然后雙擊工作區(qū)里的cell,復(fù)制excel里的數(shù)據(jù),右擊選擇粘貼Excel數(shù)據(jù)(Ctrl+Shift+V)粘貼到cell里即可。
然后我們?cè)龠\(yùn)行以下代碼(上面的圖先不要關(guān)閉,如果關(guān)了的話重新運(yùn)行上面的代碼即可)

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

最終效果如下:

最終效果.jpg

完整代碼如下:

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

%這一步要從Excel里復(fù)制,或者可以直接在Matlab里編輯
x = cell(12, 1);  %橫坐標(biāo)
y = cell(6, 1);  %縱坐標(biāo)

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

2. 簇狀堆積柱狀圖

主要的函數(shù)是plotBarStackGroups,需要從網(wǎng)上下載,點(diǎn)這里。下載完成后放到默認(rèn)路徑里。


假如我們有下面的Excel數(shù)據(jù)(12×6):

rawData.jpg

然后我們想橫坐標(biāo)是A-L代表不同的組,每組有甲乙丙三個(gè)柱子,每個(gè)甲乙丙柱子上累加有一X和二X。我么把這個(gè)12×6數(shù)組復(fù)制粘貼存為Matlab變量B,當(dāng)然也可以自己在Matlab里隨機(jī)生成類似的隨機(jī)數(shù)(e.g., B = randi([1,10],[12,6]) )
然后創(chuàng)建一個(gè)cell把A-L復(fù)制進(jìn)去,也可以直接用上面的x
然后運(yùn)行以下代碼:

C = reshape(B, [12 3 2]); % 將數(shù)據(jù)B轉(zhuǎn)換為一個(gè)12行3列2頁(yè)的三維數(shù)組
plotBarStackGroups(C,x); % 繪制一個(gè)12個(gè)以x為group標(biāo)簽的,每個(gè)組有甲乙丙3根柱子的,每個(gè)柱子上累計(jì)的圖

開(kāi)始效果圖如下,注意這個(gè)函數(shù)不完美,并沒(méi)有把顏色給區(qū)分開(kāi),也沒(méi)有圖例。
我們可以在這個(gè)圖形界面下直接添加修改即可(具體比較簡(jiǎn)單,跟其他軟件一樣)


開(kāi)始效果圖.jpg
效果設(shè)置.jpg

3. 陰影error bar圖

主要函數(shù)是shadedErrorBar, 需要下載,點(diǎn)這里


運(yùn)行如下代碼:

clc;        %把命令窗口里的都清掉啊
clear all;  %把工作區(qū)里的變量都清掉啊
x = [1:20]';
y = randi([10,30],[20,1]); %隨機(jī)數(shù)
error = randi([1,5],[20,1]); %隨機(jī)數(shù)
shadedErrorBar(x,y,error,'-db'); %藍(lán)色,菱形(diamond) 
shadedErrorBar.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容