Manual de Scilab/Xcos/Gráficos

De Wikilibros, la colección de libros de texto de contenido libre.
Ir a la navegación Ir a la búsqueda
← Vectores y matrices Gráficos Funciones →
Manual de Scilab/Xcos


Gráficos en 2 D[editar]

Gráfica de la función seno[editar]

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.

Senodexscilab.png

Varias funciones en un mismo gráfico[editar]

Dadas las siguientes funciones:

Código para Scilab:

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

Variosgrafcscilab.png

Gráficas de mediciones experimentales[editar]

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áfico de mediciones experimentales con Scilab

Gráficos en 3D[editar]

Malla[editar]

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);

Graftp1curva.png

Curvas de nivel[editar]

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);

Grae2cnivel1.png

Links[editar]

Math rendering in Scilab graphics [1]

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