Manual de Scilab/Xcos/Gráficos

← Vectores y matrices Gráficos Funciones →
Manual de Scilab/Xcos


Gráficos en 2 DEditar

Gráfica de la función senoEditar

Dada la siguiente función se pretende obtener su gráfica.

 

Código para Scilab

x=[0:0.1:3*%pi]'; //Genero la variable x que va desde 0 a 3 * pi y con intervalos de 0,1.
plot2d(x,sin(x)); //Ploteo de la función. 
xlabel( " Tiempo " ) ;
ylabel(" Tensión " ) ;
title("Función sinusoidal" ) ; //titulo y etiquetas en los x e y.
a=gca();
a.grid=[1,2]; //Activo el grid uno de color negro y otro de color azul.

 

Varias funciones en un mismo gráficoEditar

Dadas las siguientes funciones:

 
 
 

Código para Scilab:

x=[0:0.1:3*%pi]';
plot2d(x,[sin(x) sin(2*x) sin(3*x)])

 

Gráficas de mediciones experimentalesEditar

En este caso la variable media fue tomada por un sistema con un microcontrolador y transferida a la pc a través de una interfaz rs-232. El archivo de texto solo tiene los valores de la variable medida como se muestra a continuación: Archivo 1ve10-1.txt 6

7

6

6

7

7

7 ... El archivo tiene 1000 registros.

Código en Scilab:

x=(0:.5:999.5)';
fd=mopen('1ve10-1.txt','r');
y10=mfscanf(-1,fd,"%f");mclose(fd);
xlabel("tiempo");ylabel("grados");title("tp=0.36;ts=0.27;p=8")
plot(x/1000,y10t,'+');

 

Gráficos en 3DEditar

MallaEditar

El comando mesh dibuja una superficie parametrica usando un grid rectangular definido por las coordenadas x e y. Por ejemplo si se quisiera representar la siguiente función:

 


Código en Scilab:

a1=0.65812;b1=1.34208;c1=-0.46980;d1=0.14074;e1=-0.20124;f1=0.30487;
[X,Y]=meshgrid(-2:.1:2,-2:.1:2);
Z=a1*X.^2+b1*Y.^2+c1*X.*Y+d1*X+e1*Y+f1;
xtitle('z=a1*X.^2+b1*Y.^2+c1*X.*Y+d1*X+e1*Y+f1');
mesh(X,Y,Z);

 

Curvas de nivelEditar

Para poder visualizar el mínimo o máximo de una función puede llegar a ser más útil observar las curvas de nivel.

El siguiente código nos permite hacer un multiploteo de varios gráficos en la misma ventana. Las funciones son:

 
 
Note en este gráfico que las leyendas de los gráficos son escritas utilizando la tipografía de Latex, como se encuentra explicado en el link al final de este capitulo.

Código en Scilab:

a1=1;a2=-10;a3=1;a4=12; b1=5;b2=4;b3=8;b4=-9;

clf
t=linspace(-5,5,30);
function z=my_surface(x, y),z=a1*x^2+a2*x*y+a3*y^2+a4,endfunction
function z1=my_surface1(x, y),z1=b1*x^2+b2*x*y+b3*y^2+b4,endfunction

subplot(3,2,1)
  contour(t,t,my_surface,10)
  xtitle('$\textstyle z=a_1*x^2+a_2*x*y+a_3*y^2+a_4$')

subplot(3,2,2)
    contour(t,t,my_surface1,10)
    xtitle('$\textstyle z_1=b_1x^2+b_2*x*y+b_3*y^2+b_4$')
    xset("colormap",[jetcolormap(64);hotcolormap(64)])

subplot(3,2,3)
  colorbar(0,2,[1,64])
  Sfgrayplot(x,y,my_surface,strf="041",colminmax=[1,64])
  xtitle('$\textstyle z=a_1*x^2+a_2*x*y+a_3*y^2+a_4$')

subplot(3,2,4)
  colorbar(0,2,[1,64])
  Sfgrayplot(x,y,my_surface1,strf="041",colminmax=[1,64])
  xtitle('$\textstyle z_1=b_1x^2+b_2*x*y+b_3*y^2+b_4$')

drawnow() ;

f1=a1*x1.^2+a2*x1.*x2+a3*x2.^2+a4;
f2=b1*x1.^2+b2*x1.*x2+b3*x2^2+b4;

[X,Y]=meshgrid(-5:.3:5,-5:.3:5);
Z=a1*X.^2+a2*X.*Y+a3*Y.^2+a4;
Z1=b1*X.^2+b2*X.*Y+b3*Y^2+b4;

subplot(3,2,5)
 mesh(X,Y,Z);

subplot(3,2,6);
 mesh(X,Y,Z1);

 

LinksEditar

Math rendering in Scilab graphics [1]

Tutorial de como generar gráficos en 2d y 3d [2]