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.
%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. |