Mostrando las entradas con la etiqueta Gráficas 2D. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Gráficas 2D. Mostrar todas las entradas

sábado, 15 de noviembre de 2014

Modificando el color de línea de una gráfica generada con ezplot


La función ezplot es útil para trazar gráficas mediante una expresión definida simbólicamente o mediante una cadena de caracteres, lo cual, generalmente, facilita el trazo de las gráficas. Aunque lo más común es que un usuario de MATLAB comience utilizando la función plot para esta tarea, y con ello estará 'acostumbrado' a la posibilidad de incluir especificaciones de estilo, color y grosor de linea. Por ejemplo la siguiente instrucción trazará una gráfica de los vectores x e y utilizando una línea roja punteada:

plot(x,y,'r--');

No obstante, si se intenta hacer lo mismo con ezplot, MATLAB devolverá un error. La sintaxis más usual de ezplot es:

ezplot('f(x)', [a,b]);

Siendo a y b los extremos del intervalo a graficar. Ahora, se queremos personalizar la gráfica tendremos que hacer uso de la referencia (handle) a la linea graficada, para ello basta con asignar a una variable la instrucción de graficado, por ejemplo:

hL = ezplot('f(x)', [a,b]);

Con esta referencia guardada en la variable hL es posible utilizar la función set para modificar las propiedades de la linea. Véase el ejemplo siguiente:

hL = ezplot('sin(x)',[0 10]);
set(hL,'Color','r','LineStyle','--');







jueves, 10 de julio de 2014

Graficar inecuaciones / desigualdades en MATLAB


Una inecuación es una desigualdad algebraica que contiene una o más incógnitas, ejemplos de estas son las siguientes:

$$x^2+y^2>2$$
$$x+3>y$$
$$x^3+7<1$$

MATLAB no tiene soporte nativo para graficar desigualdades, pero evidentemente pueden implementarse soluciones mediante comparadores que evalúen los valores tomados por una cierta expresión en una región especificada. La siguiente función llamada inecgraf permite llevar a cabo dicha tarea:

function varargout = inecgraf(I,R)
% Grafica una desigualdad (inecuación) en un rango
% especificado.
%
% Argumentos de entrada:
%            I    -   Inecuación
%            R    -   Rango en el cual se trazará la
%                     gráfica.
%
% Argumentos de salida:
%            h    -   Si se especifica un argumento
%                     salida, la función devuelve un
%                     array de handles que le permite
%                     modificar las propiedades de la
%                     gráfica de salida. (Véase ejemplos).
%
% Ejemplos: 
%           >> inecgraf('x.^2+y.^2<10',[-5 5]);
%           >> h = inecgraf('y<x+3',[0 10]);
%           >> set(h,'color','r','MarkerSize',5);
%
% || Por: Jorge De Los Santos ||
% || Rev. 1.0  ||  Fecha: 06/05/14 ||

set(gca,'NextPlot','add');
axis([R(1) R(2) R(1) R(2)]);
dd=(R(2)-R(1))/50;
[x,y]=meshgrid(R(1):dd:R(2));
[f,c]=find(eval(I));
h=zeros(1,length(f));
for i=1:length(f)
    h(i)=plot(x(f(i),c(i)),y(f(i),c(i)),'b*','MarkerSize',2);
end
if nargout==1
    varargout{1}=h;
end
end


Las instrucciones de uso se muestran en la descripción de la función, enseguida se muestran los ejemplos obtenidos para las inecuaciones que se indican:

>> inecgraf('y>x.^2-2',[-5 5]);



>> inecgraf('x.^2+y.^2>5',[-5 5]);




martes, 27 de mayo de 2014

Trazar polígonos en MATLAB


La siguiente función permite trazar un polígono de N lados, siendo los argumentos de entrada el número de lados, el radio de la circunferencia en la cuál el polígono se encuentra inscrito, y las coordenadas del centro del polígono.

function h=poligono(N,r,cx,cy)
% Traza un polígono de N lados
t = (1/(2*N):1/N:1)*2*pi;
x = r*sin(t)+cx;
y = r*cos(t)+cy;
h=fill(x,y,'r');
axis square;
end

Enseguida se muestra un ejemplo para el polígono de 6 lados (hexágono):

>> poligono(6,1,0,0);


El usuario puede además hacer adecuaciones a la visualización del polígono utilizando el handles del mismo.


martes, 13 de mayo de 2014

Gráficas de barras


Las gráficas de barras es una forma de representar gráficamente un conjunto de datos o valores y está conformado por barras rectangulares de longitudes proporcionales a los valores representados.

Para nuestro ejemplo utilizaremos la información proporcionada por la siguiente tabla:

ASIGNATURA
CALIFICACIÓN
Álgebra
9
Geometría
9.5
Cálculo
10
Estática
8.5
Química
8

MATLAB proporciona la función bar para trazar gráficas de barras, que en su sintaxis más simple sólo necesita como argumento un vector con los datos a graficar, véase el ejemplo a continuación:

calificaciones=[9,9.5,10,8.5,8];
bar(calificaciones);


Lo anterior resulta muy sencillo, pero aún carece de información acerca de los datos que se están mostrando. Para añadir una etiqueta a cada dato o barra que se grafica modificaremos la propiedad XTickLabel del axes al cuál pertenece el diagrama de barras, en nuestro ejemplo esas etiquetas serían el nombre de cada asignatura. Definimos las etiquetas utilizando un cell array, veáse el ejemplo:

asignaturas={'Álgebra','Geometría','Cálculo','Estática','Química'};
calificaciones=[9,9.5,10,8.5,8];
h=bar(calificaciones);
set(gca,'XTickLabel',asignaturas);


Modificar el ancho y color de las barras.

Para modificar el ancho de las barras basta con pasar como segundo argumento de la función bar un valor escalar entre 0 y 1, la sintaxis sería:

bar(X,k);

Donde X es el vector que contiene los valores y k un escalar en el intervalo 0 a 1.

Por defecto MATLAB utiliza el color azul para las gráficas de barras, pero existe la posibilidad de cambiar el color a conveniencia del usuario. Para ello puede especificarse el color como un segundo argumento de la función bar, mediante un especificador de color ('r','g','b','k',...), con la sintaxis:

bar(X,'color');

Donde X es el vector de valor y 'color' el especificador de color mediante caracteres. 

Si requiere modificar el grosor y color a la vez, puede usar la siguiente sintaxis:

bar(X,k,'color');

El siguiente ejemplo muestra una gráfica de barras con el ancho y color modificados:


asignaturas={'Álgebra','Geometría','Cálculo','Estática','Química'};
calificaciones=[9,9.5,10,8.5,8];
bar(calificaciones,0.4,'r');
set(gca,'XTickLabel',asignaturas);
title('Calificaciones');


Gráficas de barras múltiples.

En ocasiones se necesita representar más de un valor asociado a una misma característica, para ello es posible graficar diagramas de barras utilizando matrices en lugar de un vector, en donde cada fila proporciona los valores de una misma característica y cada columna pertenece a una categoría distinta entre los valores. Para nuestro ejemplo utilizaremos la tabla mostrada enseguida.

ALUMNO
CALIFICACIONES
MATEMÁTICAS
FÍSICA
QUÍMICA
Ana
10
7
9
Jorge
8
8
10
Javier
9
9
8


En la tabla anterior cada alumno tiene tres calificaciones asociadas en diferentes asignaturas. El siguiente ejemplo muestra cómo trazar la gráfica de barras correspondiente:


nombres={'Ana','Jorge','Javier'};
Ana=[10,7,9];
Jorge=[8,8,10];
Javier=[9,9,8];
bar([Ana;Jorge;Javier]);
set(gca,'XtickLabel',nombres);