8.2 Gráficas 2D de línea para funciones matemáticas

[ Algoritmo ] [ Ejes y etiquetas ][ Ejemplos ]

Para la solución de problemas en ingeniería, una gráfica es de gran ayuda. La gráfica puede mostrarse usando tan solo algunas instrucciones en Python con la ayuda de las librerías Numpy para vectores y matrices y Matplotlib para las gráficas.

Se usa un ejemplo para la gráfica de la función f(x) en el intervalo [0.5, 2]

f(x) = 5 \cos(2x) - 2x \sin(2x)

[ Algoritmo ] [ Ejes y etiquetas ][ Ejemplos ]
..


Algoritmo en Python para gráfica 2D

El bloque de inicio contiene la referencia del problema y carga las librerías numpy y matplotlib.

La función f(x) se puede escribir en la forma «def-return» o también en la forma simplificada lambda.

fx = lambda x: 5*np.cos(2*x)-2*x*np.sin(2*x)

El bloque de ingreso se usa para definir la función matemática fx en formato lambda y los valores que determinan el intervalo [a,b]. Se requiere establecer el número de muestras necesarias para una buena precisión o «suavidad» de la curva.

En el bloque de procedimiento, se calculan los vectores que contienen los puntos xi, fi. Para calcular el vector xi se usa la instrucción np.linspace(a,b,muestras) que permite generar las muestras xi en el intervalo [a,b] del eje x , cuyos valores luego son usados para evaluar f(xi)

# Grafica 2D con linea
import numpy as np
import matplotlib.pyplot as plt

# INGRESO
fx = lambda x: 5*np.cos(2*x)-2*x*np.sin(2*x)

a = 0.5
b = 2
muestras = 21

# PROCEDIMIENTO
xi = np.linspace(a,b,muestras)
fi = fx(xi)

# SALIDA
# GRAFICA
plt.plot(xi,fi)

# Etiquetas de ejes
plt.title('funcion(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

El bloque de salida se enfoca en la gráfica. Las instrucciones necesarias para la gráfica son básicamente dos:

  • la que dibuja la línea plt.plot(xi,fi)
  • la que muestra el gráfico en pantalla plt.show()

A la gráfica se puede añadir otros detalles con instrucciones adicionales antes de plt.show(). Por ejemplo, se añaden las etiquetas de los ejes con plt.xlabel(), plt.ylabel(), y los títulos de los gráficos con plt.title().

Cuando se termina de añadir los elementos del gráfico, se usa la instrucción plt.show() para mostrar la gráfica.

[ Algoritmo ] [ Ejes y etiquetas ][ Ejemplos ]

..


Instrucciones complementarias para ejes y etiquetas

Cuadrícula plt.grid()
linea horizontal plt.axhline(0) eje y=0
linea vertical plt.axvline(0) eje x=0
color de línea plt.plot(xi, fi, 'r') ‘r’ Red,
‘g’ Green, etc
puntos plt.plot(xi, fi, 'g0') ‘o’, ‘+’, ‘.-‘
etiqueta de línea plt.plot(xi, fi, label='f(x)') label = etiqueta
muestra leyendas plt.legend() incluye cuadro con
las etiquetas para cada
curva en la gráfica.
Trabaja en conjunto con
plt.plot(x,y, label=’nombre curva’)

Algunas facilidades de la gráfica en Python son: ZOOM, guardar imagen, con el cursor se estima el valor del punto, etc.

En los ejercicios del curso se ampliarán los detalles, en la medida que se presentan nuevas necesidades para resaltar resultados en la gráfica.

# SALIDA
# GRAFICA
plt.plot(xi,fi)
plt.plot(xi,fi,'r.')

# lineas auxiliares
plt.axhline(0)
plt.grid()

# Etiquetas de ejes
plt.title('funcion(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

El tema se continuará desarrollando para líneas junto a los ejercicios de cada unidad.

otras instrucciones
%matplotlib inline instrucción de IPython para que las gráficas se incluyan en la página.
De no usarla, las gráficas aparecen en ventanas aparte.
import matplotlib.pyplot as plt Importar librerías de funciones matplotlib.pyplot, usando un alias de tres letras «plt»:
plt.show() muestra el gráfico creado con las instrucciones.
Es la última instrucción a usar luego de crear el gráfico.
plt.xlabel(‘textoejex’)

plt.ylabel(‘textoejey’)

Asigna nombres a los ejes de abscisas y ordenas. El nombre se escribe entre ‘apóstrofes’ o «comillas».
plt.stem(x,y) gráfico de líneas verticales y un punto. Usado para mostrar señales discretas en los libros de texto de la bibliografía.
plt.figure(k) permite generar varias gráficas, numeradas cada una por el valor de k. En Python simple se muestran en ventanas separadas.
plt.title(‘texto’) escribe el título del gráfico, definido por ‘texto’
plt.fill_between(rangox, 0, valores, color=’green’ dibuja en el rango un área entre 0 y los valores, al color descrito: ‘green’, ‘ligthgreen’, ‘red’, ‘magenta’, ‘blue’, ‘yellow’, etc
plt.margins(0.1) crea un margen en la gráfica de valor 0.1 expandiendo los bordes sobre los máximos y mínimos. Se usa para ver claramente las variaciones en los extremos o cuando los valores máximos son constantes en un periodo.

[ Algoritmo ] [ Ejes y etiquetas ][ Ejemplos ]
..


Ejemplos de gráficas en 2D

Las gráficas son un recurso muy versátil en el área de la matemática e ingeniería. En el curso de Métodos Numéricos se presenta una introducción de gráficas en 2D y se usan y desarrollan en todas las unidades como parte del análisis de los problemas.

Graficas 3D puntos dispersos-scatter

Graficas 3D wireframe

En el curso de Señales y Sistemas, se las usa ampliamente desde la unidad 1 Señales, para mostrar los diferentes tipos y formas, y luego en el análisis de las respuestas de los sistemas ante las señales. Como tema de introducción, revise algunas de las definiciones básicas de señales para observar la aplicación de gráficas.

1. Señales Contínuas

2. Señales Discretas

3. Señales Analógicas y Digitales

4. Señales Periódicas y No periódicas

5. Señales de Energía y Potencia

6. Señales Pares e Impares

7. Señales μ(t) y δ(t)

8. Señales Compuestas

9. Señales Exponencial compleja

10. Señales operaciones en tiempo

También se usan para el análisis de resultados e algún experimento, como los que se pueden observar en el grupo de investigación GIRNI

Rssi vs Distancia. Linealiza POR intervalos

Se pueden usar algunos tipos de gráficas, como de línea, dispersión, flechas,  usando las coordenadas en vectores x, y

plt.plot(x,y)
plt.scatter(x,y)
plt.arrow(xinicio, yinicio, deltax,deltay)
plt.quiver(xinicio, yinicio, componentex, componentey)

Las instrucciones para las gráficas se realizan en el bloque de salida usando un solo bloque de instrucciones, para finalmente mostrar el resultado plt.show().

[ Algoritmo ] [ Ejes y etiquetas ][ Ejemplos ]