基于Matlab繪制小提琴圖的示例代碼_第1頁(yè)
基于Matlab繪制小提琴圖的示例代碼_第2頁(yè)
基于Matlab繪制小提琴圖的示例代碼_第3頁(yè)
基于Matlab繪制小提琴圖的示例代碼_第4頁(yè)
基于Matlab繪制小提琴圖的示例代碼_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第基于Matlab繪制小提琴圖的示例代碼目錄violinChart函數(shù)使用方法基礎(chǔ)使用,Y為矩陣基礎(chǔ)使用,Y為向量,X為標(biāo)簽基礎(chǔ)使用,多個(gè)圖像繪制,并添加圖例violinChart完整函數(shù)ggthemeviolin函數(shù)介紹ggthemeviolin主題ggthemeviolin修飾函數(shù)代碼本文將為大家詳細(xì)講解Matlab中小提琴圖的繪制函數(shù)及ggtheme主題修飾函數(shù)

violinChart函數(shù)使用方法

寫(xiě)了個(gè)matlab繪制小提琴圖的函數(shù):

1.圖中小提琴狀區(qū)域?yàn)楹嗣芏惹€(xiàn)。

2.白色方塊為25%,75%分位數(shù)。

3.中間橫線(xiàn)為中位數(shù)。

4.白色點(diǎn)為離群值點(diǎn)。

5.豎著的黑線(xiàn)是去掉離群值點(diǎn)后點(diǎn)的上下限。

基礎(chǔ)使用,Y為矩陣

X=1:5;

Y=randn(100,5);

violinChart(gca,X,Y,[00.4470.741],0.6);

X|橫坐標(biāo)。Y|數(shù)據(jù)集。FaceColor|顏色,示例用的是[00.4470.741]。width|小提琴圖寬度,這里取的是0.6,就是以?xún)蓚€(gè)小提琴圖間距的0.6倍為概率密度的上限1。

基礎(chǔ)使用,Y為向量,X為標(biāo)簽

X=[1.*ones(1,50),2.*ones(1,30),3.*ones(1,20),4.*ones(1,50),5.*ones(1,50)];

Y=randn(1,200)+sin(X);

violinChart(gca,X,Y,[00.4470.741]);

基礎(chǔ)使用,多個(gè)圖像繪制,并添加圖例

X1=[1:2:7,13];

Y1=randn(100,5)+sin(X1);

X2=2:2:10;

Y2=randn(100,5)+cos(X2);

figure

Hdl1=violinChart(gca,X1,Y1,[00.4470.741]);

Hdl2=violinChart(gca,X2,Y2,[0.8500.3250.098]);

legend([Hdl1.F_legend,Hdl2.F_legend],{'randn+sin(x)','randn+cos(x)'});

violinChart完整函數(shù)

若函數(shù)有更新則會(huì)將更新版本放入文末所示壓縮文件內(nèi)。

functionHdl=violinChart(ax,X,Y,FaceColor,width)

%@authorslandarer

%Hdl:返回的圖形對(duì)象句柄結(jié)構(gòu)體

%------------------------------

%Hdl.F_density(i)|patch|核密度分布

%Hdl.F_outlier(i)|scatter|離群值點(diǎn)

%Hdl.F_range95(i)|line|去除離群值點(diǎn)后最大值及最小值

%Hdl.F_quantile(i)|patch|四分位數(shù)框

%Hdl.F_medianLine(i)|line|中位數(shù)

%Hdl.F_legend|patch|用于生成legend圖例的圖形對(duì)象

%------------------------------

%請(qǐng)使用如下方式生成圖例:

%Hdl1=violinChart(ax,X,Y,......)

%Hdl2=violinChart(ax,X,Y,......)

%......

%legend([Hdl1,Hdl2,......],{Name1,Name2,...})

%===========================================================

%以下為使用實(shí)例代碼:

%------------------------------

%X1=[1:2:7,13];

%Y1=randn(100,5)+sin(X1);

%X2=2:2:10;

%Y2=randn(100,5)+cos(X2);

%Hdl1=violinChart(gca,X1,Y1,[00.4470.741],0.5);

%Hdl2=violinChart(gca,X2,Y2,[0.8500.3250.098],0.5);

%legend([Hdl1.F_legend,Hdl2.F_legend],{'randn+sin(x)','randn+cos(x)'});

ifnargin5

width=0.4;

if~isempty(ax)

ax=gca;

hold(ax,'on');

oriX=X;

X=unique(X);

sep=min(diff(X));

ifisempty(sep)

sep=1;

fori=1:length(X)

iflength(oriX)==numel(Y)

tY=Y(oriX==X(i));

else

tY=Y(:,i);

[f,yi]=ksdensity(tY);

Hdl.F_density(i)=fill([f,-f(end:-1:1)].*sep.*width+X(i),[yi,yi(end:-1:1)],FaceColor);

outliBool=isoutlier(tY,'quartiles');

outli=tY(outliBool);

Hdl.F_outlier(i)=scatter(repmat(X(i),[length(outli),1]),outli,20,'filled',...

'CData',[111],'MarkerEdgeColor','none');

nY=tY(~outliBool);

Hdl.F_range95(i)=plot([X(i),X(i)],[min(nY),max(nY)],'k','lineWidth',1);

qt25=quantile(tY,0.25);

qt75=quantile(tY,0.75);

Hdl.F_quantile(i)=fill(X(i)+0.6.*sep.*width.*[-111-1].*max(f),...

[qt25,qt25,qt75,qt75],[111],...

'EdgeColor',[000]);

med=median(tY);

Hdl.F_medianLine(i)=plot(X(i)+0.6.*sep.*width.*[-11].*max(f),[med,med],'LineWidth',3,...

'Color',[000]);

Hdl.F_legend=Hdl.F_density(1);

end

ggthemeviolin函數(shù)介紹

假設(shè)你已經(jīng)編寫(xiě)了上述繪圖代碼,只需要將最后增添一行變?yōu)?/p>

X1=[1:2:7,13];

Y1=randn(100,5)+sin(X1);

X2=2:2:10;

Y2=randn(100,5)+cos(X2);

figure

Hdl1=violinChart(gca,X1,Y1,[00.4470.741]);

Hdl2=violinChart(gca,X2,Y2,[0.8500.3250.098]);

legend([Hdl1.F_legend,Hdl2.F_legend],{'randn+sin(x)','randn+cos(x)'});

ggThemeViolin(gca,[Hdl1,Hdl2],'dust');

則圖像會(huì)被修飾:

而將函數(shù)最后加入LP參數(shù)則變?yōu)椋?/p>

ggThemeViolin(gca,[Hdl1,Hdl2],'dust','LP');

ggthemeviolin主題

主題有如下選擇:

flat/flat_dark/camouflage/chalk/

copper/dust/earth/fresh/grape/

grass/greyscale/light/lilac/pale/

sea/sky/solarized

flat

flat_dark

camouflage

chalk

copper

dust

earth

fresh

grape

grass

greyscale

light

lilac

pale

sea

sky

solarized

ggthemeviolin修飾函數(shù)代碼

注意,要使用ggThemeViolin修飾器函數(shù),需要保證當(dāng)前文件夾有themeCSS.mat文件,該文件將會(huì)一同在壓縮包內(nèi)給出。

functionax=ggThemeViolin(varargin)

%@author:slandarer

%參數(shù)說(shuō)明:

%-----------------------------------------------------

%AxesTheme|坐標(biāo)區(qū)域風(fēng)格|'flat'/'flat_dark'/'camouflage'/'chalk'/

%'copper'/'dust'/'earth'/'fresh'/'grape'/

%'grass'/'greyscale'/'light'/'lilac'/'pale'

%'sea'/'sky'/'solarized'

%HDLset|句柄集合

%獲取要處理的坐標(biāo)區(qū)域=====================================================

ifstrcmp(get(varargin{1},'type'),'axes')

ax=varargin{1};

ax=gca;

hold(ax,'on')

%獲取要處理的圖像句柄=====================================================

HDLset=varargin{2};

%獲取風(fēng)格名稱(chēng)=============================================================

theme.AxesTheme='flat';

iflength(varargin)2

theme.AxesTheme=varargin{3};

%開(kāi)始風(fēng)格化===============================================================

ax.Box='off';

ax.YGrid='on';

ax.XGrid='on';

ax.GridLine;

ax.LineWidth=1.2;

%主題風(fēng)格化

Tm=load('themeCSS.mat');

Tm=Tm.theme;

ax.Color=Tm.(theme.AxesTheme).Color;

ax.TickLength=Tm.(theme.AxesTheme).TickLength;

ax.GridColorMode=Tm.(theme.AxesTheme).GridColorMode;

ax.GridColor=Tm.(theme.AxesTheme).GridColor;

ax.GridAlpha=Tm.(theme.AxesTheme).GridAlpha;

ax.XColor=Tm.(theme.AxesTheme).XColor;

ax.YColor=Tm.(theme.AxesTheme).YColor;

ax.TickDir=Tm.(theme.AxesTheme).TickDir;

ax.ColorOrder=Tm.(theme.AxesTheme).ColorOrder;

fori=1:length(HDLset)

forj=1:length(HDLset(i).F_density)

HDLset(i).F_density(j).FaceColor=ax.ColorOrder(mod(i-1,size(ax.ColorOrder,1))+1,:);

HDLset(i).F_density(j).EdgeColor=[.1,.1,.1];

f_max=(max(HDLset(i).F_density(j).XData)-min(HDLset(i).F_density(j).XData))/2;

x_mid=(max(HDLset(i).F_density(j).XData)+min(HDLset(i).F_density(j).XData))/2;

HDLset(i).F_quantile(j).XData=x_mi

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論