[Scilab-users] How to add numbers beside stacked bar chart

Serge Steer Serge.Steer at inria.fr
Fri Sep 28 15:28:08 CEST 2012


Le 28/09/2012 11:22, Samuel Enibe a écrit :
> year = [2000 2010    2020    2030];//years for the data
> data = [8.18    21.54    49.68    62.56;//data for industry
>       10.61    15.73    24.56    39.45;//data for Transport
>       15.61    16.17    18.45    24.84;//data for Household
>         1.72    2.3    3.13    4.28//data for services
>     ];
> data2 = data';//transpose of data
> sectors = ["Industry"    "Transport"    "Household" "Services"];
> bar(year,data2,"stacked");
> xtitle("","","Energy Demand,mtoe");
> legend(sectors,"in_upper_left");

Here is a solution

year = [2000    2010    2020    2030];//years for the data
data = [8.18    21.54    49.68    62.56;//data for industry
       10.61    15.73    24.56    39.45;//data for Transport
       15.61    16.17    18.45    24.84;//data for Household
         1.72    2.3    3.13    4.28//data for services
     ];
data2 = data';//transpose of data
sectors = ["Industry"    "Transport"    "Household"    "Services"];
clf;bar(year,data2,"stacked");
ny=size(year,'*');
cdata=cumsum([zeros(1,ny);data(1:$-1,:)],1)+data/2;
for j=1:ny //loop on years
   for i=1:size(data,1) //loop on types
     l=string(data(i,j));
     r=xstringl(0,0,l);
     xstring(year(j)-r(3)/2,cdata(i,j)-r(4)/2,l);
   end
end
xtitle("","","Energy Demand,mtoe");
legend(sectors,"in_upper_left");


Serge Steer
INRIA



More information about the users mailing list