2016-04-20 4 views
2

Кто-нибудь знает, как сделать график, похожий на этот, с помощью Matlab?Как сделать непрерывную стеклянную гистограмму

enter image description here

мне кажется непрерывным столбчатый участок.

Мне не удалось скачать одинаковые данные, поэтому я использовал other ones.

Я попытался следующий код:

clear all 

filename = 'C:\Users\andre\Desktop\GDPpercapitaconstant2000US.xlsx'; 
sheet = 'Data'; 
xlRange = 'AP5:AP259'; %for example 

A = xlsread(filename,sheet,xlRange); 

A(isnan(A))=[]; %remove NaNs 

%create four subsets 
A1=A(1:70); 
A2=A(71:150); 
A3=A(151:180); 
A4=A(181:end); 


edges=80:200:8000; %bins of the distributions 

[n_A1,xout_A1] = histc(A1,edges); %distributions of the first subset 
[n_A2,xout_A2] = histc(A2,edges); 
[n_A3,xout_A3] = histc(A3,edges); 
[n_A4,xout_A4] = histc(A4,edges); 

%make stacked bar plot 
for ii=1:numel(edges) 
    y(ii,:) = [n_A1(ii) n_A2(ii) n_A3(ii) n_A4(ii)]; 
end 

bar(y,'stacked', 'BarWidth', 1) 

и получил это:

enter image description here

Это не так уж плохо .. Может быть, с другими данными, это будет выглядеть лучше ... но я было интересно, есть ли у кого-то лучшие идеи. Может быть, так можно адаптировать fitdist?

ответ

6

Сначала определите ось x. Если вы хотите, чтобы следовать правилам bar, а затем использовать:

x = 0.5:numel(edges)-0.5; 

Затем используйте area(x,y), производящий заполненную/уложены площадь участка:

area(x,y) 

И если вы хотите, те же цвета в качестве Например, вы размещены в верхней части, определить цветовую палитру и вызовите colormap как:

map = [ 
    218 96 96 
    248 219 138 
    253 249 199 
    139 217 140 
    195 139 217 
    246 221 245 
    139 153 221]/255; 

colormap(map) 

(Это не может быть точно так, как тот, который вы в курсе, но я получил его Цюй Я думаю, это близко. Кроме того, не все цвета показаны в результате ниже, поскольку есть только 4 параметров, но все цвета определены)

Результат:

enter image description here

+0

круто! Спасибо! – shamalaia

+0

С удовольствием помогите;) – JCKaz

+1

@A_C, я исправил цвета для вас, если вы хотите, чтобы вы были так же, как и вы, который вы отправили. – JCKaz

Смежные вопросы