Gráficas 2D de línea

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 librerias Numpy para vectores y matrices y Matplotlib para las gráficas.

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

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

Algoritmo en Python

El bloque de inicio contiene la referencia del problema y carga las librerias numpy y matplotlib.

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

El bloque de ingreso se usa para definir la funcion 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.


Instrucciones complementarias para la gráfica

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)')
muestra leyendas plt.legend() incluye cuadro con
las etiquetas para cada
curva a graficar.
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 intrucció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 librerias de funciones matplotlib.pyplot, usando un álias de tres letras «plt»:
plt.show() muestra el gráfico creado con las intrucciones.
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.