Re: [Scilab-users] How to produce a filled staircase plot

2015-10-07 Thread Serge Steer
Under Scilab-5.5.2 xfpoly rescale the graph automatically as plot does

A little more simple (efficient?) code:

t = [ 0  2  5 10 12 17 20 30 35 45 60]'*0.1;
N = [20 18 15 14 12  9  6  4  3  2  1]';

t2=matrix([t' t($); t' t($)],-1,1);
N2=matrix([0 N'; N' 0],-1,1)

clf;
xfpoly(t2,N2);
h = gce();
h.line_mode = "off";
h.background = color('gray');
plot(t2(2:$-1),N2(2:$-1),'black', t2(2:$-1),21*exp(-t2(2:$-1)/2),'red');
 



 
Le 07/10/2015 09:58, Antoine Monmayrant a écrit :
> Le 10/07/2015 09:41 AM, Yann DEBRAY a écrit :
>> Hello Raphael,
>>
>> Nice plot, but sadly it doesn't rescale.
>> Do you have an idea how to make it fit the axes, to rescale
>> automatically?
>
> You can calculate your data_bounds and set them after plotting.
> Alernatively, use my method that does not rely on xfpoly, but on plot
> that rescales automatically:
>
> //I want to staircase plot N(Decay_times)
> N=[N2,N2-cumsum(ones(Decay_times))+1];
> Np1=[N2-cumsum(ones(Decay_times))+1,0];
> Ns=matrix([N;Np1],2*prod(size(N)));
> Decay_times=[0,Decay_times];
>
> D_t=matrix([Decay_times;Decay_times],2*prod(size(Decay_times)));
> //in the end, I plot Ns(D_t)
> Ns=[0;Ns];
> D_t=[0;D_t];
> //plot it
> plot(D_t,Ns, 'k-');
> //fill the bacground
> e=gce();
> e.children.polyline_style=1;
> e.children.closed='off';
> e.children.background=color('gray');
>
>>
>> Yann
>>
>> Le 07/10/2015 00:17, Rafael Guera a écrit :
>>> Hello Antoine,
>>>  
>>> An attempt below, not particularly clean but I hope not too dirty either:
>>>  
>>> //INPUT
>>> t = [ 0  2  5 10 12 17 20 30 35 45 60]'*0.1;
>>> N = [20 18 15 14 12  9  6  4  3  2  1]';
>>>  
>>> t2=[];N2=[];
>>> ns= length(t);
>>> t2(1:2:2*ns) = t;  
>>> t2(2:2:2*ns) = [t(2:$)-%eps; t($)];
>>> N2(1:2:2*ns-1) = N;
>>> N2(2:2:2*ns) = N;
>>> clf;
>>> xfpoly([t2(1)-%eps;t2;t2($)+%eps],[0;N2;0]);
>>> h = gce();
>>> h.line_mode = "off";
>>> h.background = color('gray');
>>> plot(t2,N2,'black', t2,21*exp(-t2/2),'red');
>>>  
>>>  
>>> Regards,
>>>  
>>> Rafael
>>>  
>>> -Original Message-
>>> From: users [mailto:users-boun...@lists.scilab.org] On Behalf Of Antoine 
>>> Monmayrant
>>> Sent: Tuesday, October 06, 2015 10:57 AM
>>> To: Users mailing list for Scilab 
>>> Subject: Re: [Scilab-users] How to produce a filled staircase plot
>>>  
>>> Thank you Serge for this solution, but it does not work for me: the "bars" 
>>> in my case are not regular.
>>> I am simulating an exponential random decay: starting from a number N0, my 
>>> population decreases by jumps of N0->N0-1 that occur at random times, 
>>> following an exponential law (see the attached plot).
>>> For the moment, I just build my polygon by hand, but it adds quite a lot of 
>>> "noise" on top of the code that I intent to show to my students.
>>> I was hoping for a cleaner solution.
>>>  
>>> Thanks anyway,
>>>  
>>> Cheers,
>>>  
>>> Antoine
>>>  
>>> Le Mardi 6 Octobre 2015 11:42 CEST, Serge Steer < 
>>>  serge.st...@inria.fr> a écrit: 
>>>  
 Le 06/10/2015 00:01, Antoine Monmayrant a écrit :
> Hi everyone,
>
> I'm trying to do a filled staircase plot (ie a staircase where the area 
> between the staircase and the x axis is filled with a solid color).
> Is there a given combination of polyline_style and fill_mode, etc ... 
> that can do this?
> Or should I resort to building a polygon by hand?
>
> Thanks in advance,
>
> Antoine
>
> ___
> users mailing list
>   users@lists.scilab.org
>   
> http://lists.scilab.org/mailman/listinfo/users
>
 May be the bar mode can help you
 x=linspace(0,%pi,10);y=sin(x);
 clf;plot(x,y);e=gce();e=e.children;
 e.polyline_style=6;e.bar_width=0.5;
 e.background=2;
 e.line_mode="off";
 ___
 users mailing list
   users@lists.scilab.org
   
 http://lists.scilab.org/mailman/listinfo/users

>>>  
>>>  
>>>  
>>>  
>>>  
>>>
>>>
>>>
>>> ___
>>> users mailing list
>>> users@lists.scilab.org
>>> http://lists.scilab.org/mailman/listinfo/users
>>
>>
>>
>> ___
>> users mailing list
>> users@lists.scilab.org
>> http://lists.scilab.org/mailman/listinfo/users
>
>
> -- 
> +++
>
>  Antoine Monmayrant LAAS - CNRS
>  7 avenue du Colonel Roche
>  BP 54200
>  31031 TOULOUSE Cedex 4
>  FRANCE
>
>  Tel:+33 5 61 33 64 59
>  
>  email : antoine.monmayr...@laas.fr
>  permanent email : antoine.monmayr...@polytechnique.org
>
> +++
>
>
>
> ___
> users mailing list
> use

Re: [Scilab-users] How to produce a filled staircase plot

2015-10-07 Thread Antoine Monmayrant

Le 10/07/2015 09:41 AM, Yann DEBRAY a écrit :

Hello Raphael,

Nice plot, but sadly it doesn't rescale.
Do you have an idea how to make it fit the axes, to rescale automatically?


You can calculate your data_bounds and set them after plotting.
Alernatively, use my method that does not rely on xfpoly, but on plot 
that rescales automatically:


//I want to staircase plot N(Decay_times)
N=[N2,N2-cumsum(ones(Decay_times))+1];
Np1=[N2-cumsum(ones(Decay_times))+1,0];
Ns=matrix([N;Np1],2*prod(size(N)));
Decay_times=[0,Decay_times];

D_t=matrix([Decay_times;Decay_times],2*prod(size(Decay_times)));
//in the end, I plot Ns(D_t)
Ns=[0;Ns];
D_t=[0;D_t];
//plot it
plot(D_t,Ns, 'k-');
//fill the bacground
e=gce();
e.children.polyline_style=1;
e.children.closed='off';
e.children.background=color('gray');



Yann

Le 07/10/2015 00:17, Rafael Guera a écrit :

Hello Antoine,
  
An attempt below, not particularly clean but I hope not too dirty either:
  
//INPUT

t = [ 0  2  5 10 12 17 20 30 35 45 60]'*0.1;
N = [20 18 15 14 12  9  6  4  3  2  1]';
  
t2=[];N2=[];

ns= length(t);
t2(1:2:2*ns) = t;
t2(2:2:2*ns) = [t(2:$)-%eps; t($)];
N2(1:2:2*ns-1) = N;
N2(2:2:2*ns) = N;
clf;
xfpoly([t2(1)-%eps;t2;t2($)+%eps],[0;N2;0]);
h = gce();
h.line_mode = "off";
h.background = color('gray');
plot(t2,N2,'black', t2,21*exp(-t2/2),'red');
  
  
Regards,
  
Rafael
  
-Original Message-

From: users [mailto:users-boun...@lists.scilab.org] On Behalf Of Antoine 
Monmayrant
Sent: Tuesday, October 06, 2015 10:57 AM
To: Users mailing list for Scilab
Subject: Re: [Scilab-users] How to produce a filled staircase plot
  
Thank you Serge for this solution, but it does not work for me: the "bars" in my case are not regular.

I am simulating an exponential random decay: starting from a number N0, my 
population decreases by jumps of N0->N0-1 that occur at random times, following 
an exponential law (see the attached plot).
For the moment, I just build my polygon by hand, but it adds quite a lot of 
"noise" on top of the code that I intent to show to my students.
I was hoping for a cleaner solution.
  
Thanks anyway,
  
Cheers,
  
Antoine
  
Le Mardi 6 Octobre 2015 11:42 CEST, Serge Steer <  serge.st...@inria.fr> a écrit:
  

Le 06/10/2015 00:01, Antoine Monmayrant a écrit :

Hi everyone,

I'm trying to do a filled staircase plot (ie a staircase where the area between 
the staircase and the x axis is filled with a solid color).
Is there a given combination of polyline_style and fill_mode, etc ... that can 
do this?
Or should I resort to building a polygon by hand?

Thanks in advance,

Antoine

___
users mailing list
    users@lists.scilab.org
    
http://lists.scilab.org/mailman/listinfo/users


May be the bar mode can help you
x=linspace(0,%pi,10);y=sin(x);
clf;plot(x,y);e=gce();e=e.children;
e.polyline_style=6;e.bar_width=0.5;
e.background=2;
e.line_mode="off";
___
users mailing list
    users@lists.scilab.org
    
http://lists.scilab.org/mailman/listinfo/users

  
  
  
  
  




___
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users




___
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users



--
+++

 Antoine Monmayrant LAAS - CNRS
 7 avenue du Colonel Roche
 BP 54200
 31031 TOULOUSE Cedex 4
 FRANCE

 Tel:+33 5 61 33 64 59
 
 email : antoine.monmayr...@laas.fr

 permanent email : antoine.monmayr...@polytechnique.org

+++

___
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users


Re: [Scilab-users] How to produce a filled staircase plot

2015-10-07 Thread Yann DEBRAY

Hello Raphael,

Nice plot, but sadly it doesn't rescale.
Do you have an idea how to make it fit the axes, to rescale automatically?

Yann

Le 07/10/2015 00:17, Rafael Guera a écrit :

Hello Antoine,
  
An attempt below, not particularly clean but I hope not too dirty either:
  
//INPUT

t = [ 0  2  5 10 12 17 20 30 35 45 60]'*0.1;
N = [20 18 15 14 12  9  6  4  3  2  1]';
  
t2=[];N2=[];

ns= length(t);
t2(1:2:2*ns) = t;
t2(2:2:2*ns) = [t(2:$)-%eps; t($)];
N2(1:2:2*ns-1) = N;
N2(2:2:2*ns) = N;
clf;
xfpoly([t2(1)-%eps;t2;t2($)+%eps],[0;N2;0]);
h = gce();
h.line_mode = "off";
h.background = color('gray');
plot(t2,N2,'black', t2,21*exp(-t2/2),'red');
  
  
Regards,
  
Rafael
  
-Original Message-

From: users [mailto:users-boun...@lists.scilab.org] On Behalf Of Antoine 
Monmayrant
Sent: Tuesday, October 06, 2015 10:57 AM
To: Users mailing list for Scilab 
Subject: Re: [Scilab-users] How to produce a filled staircase plot
  
Thank you Serge for this solution, but it does not work for me: the "bars" in my case are not regular.

I am simulating an exponential random decay: starting from a number N0, my 
population decreases by jumps of N0->N0-1 that occur at random times, following 
an exponential law (see the attached plot).
For the moment, I just build my polygon by hand, but it adds quite a lot of 
"noise" on top of the code that I intent to show to my students.
I was hoping for a cleaner solution.
  
Thanks anyway,
  
Cheers,
  
Antoine
  
Le Mardi 6 Octobre 2015 11:42 CEST, Serge Steer <  serge.st...@inria.fr> a écrit:
  

Le 06/10/2015 00:01, Antoine Monmayrant a écrit :

Hi everyone,

I'm trying to do a filled staircase plot (ie a staircase where the area between 
the staircase and the x axis is filled with a solid color).
Is there a given combination of polyline_style and fill_mode, etc ... that can 
do this?
Or should I resort to building a polygon by hand?

Thanks in advance,

Antoine

___
users mailing list
   users@lists.scilab.org
   
http://lists.scilab.org/mailman/listinfo/users


May be the bar mode can help you
x=linspace(0,%pi,10);y=sin(x);
clf;plot(x,y);e=gce();e=e.children;
e.polyline_style=6;e.bar_width=0.5;
e.background=2;
e.line_mode="off";
___
users mailing list
   users@lists.scilab.org
   
http://lists.scilab.org/mailman/listinfo/users

  
  
  
  
  




___
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users


___
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users