我想從表格創建堆積條形圖。在這裏有我的表的類型的MWE正在看:從matlab中的表中堆積的酒吧
clear all;
country1=rand(5,1);
country2=rand(5,1);
country3=rand(5,1);
country4=rand(5,1);
country5=rand(5,1);
date=1990:1994;
T=table(date',country1,country2,country3,country4,country5);
T.Properties.VariableNames{1}='date';
T.Total=sum(T{:,2:end},2);
T{:,2:end} = T{:,2:end}./T.Total;
A = table2array(T);
A(:,[1,end])=[];
A=sort(A,2);
TT=array2table(A,'VariableNames',{'country1','country2','country3','country4','country5'});
TT.Date=T.date;
TT.Total=T.Total;
T_new=table(TT.Date, TT.country1,TT.country2,TT.country3,TT.country4,TT.country5,TT.Total);
T_new.Properties.VariableNames=T.Properties.VariableNames;
T_new.World=sum(T{:,2:4},2);
T_new.World=1-(T_new.country4+T_new.country5);
T_new(:,[2:4,end-1])=[];
T_new
date country4 country5 World
____ ________ ________ _______
1990 0.2933 0.29471 0.41199
1991 0.31453 0.34511 0.34035
1992 0.22595 0.29099 0.48307
1993 0.26357 0.33336 0.40306
1994 0.28401 0.28922 0.42677
堆疊型棒
========== ==========
基於T_new
表我想創建一個堆積條形圖。在'x'軸上,圖表應該顯示日期(1990,1991等),每個日期應該是一個堆疊酒吧。因此,例如,對於1990
有應該是一個棒堆疊值0.2933 0.29471 0.41199
理想,在棧欄我想也包括(COUNTRY1,COUNTRY2,世界)爲correspending值的標籤。
我如何在matlab中做到這一點?
如果你有Matlab 2016b,這個'T {:,2:end} ./ T.Total',不是一個錯誤。 – EBH
而且,我看到你真的喜歡動畫GIF :) – EBH