Cómo graficar una función de una variable con Python
Esta pequeña publicación es un aperitivo para una sucesión de publicaciones en donde desarrollaré todos los métodos de graficación en Python, tanto 2D como 3D y algunas alternativas para dimensiones mayores.
Observación: Debes tener instalado matplotlib. Si tienes dudas sobre como instalarlo, puedes dejar un comentario, sin embargo, si eres un usuario de Debian (Ubuntu, Linux Mint, etc) o distribuciones parecidas, puedes buscarlo en synaptic o usar apt-get.
El código en cuestión es:
import numpy as np import matplotlib.pyplot as plt
Nota final: Preferí colocar una función mas interesante que la eterna parábola que aparece en todo manual de graficación. Te invito a jugar con este código simple, seguro lograrás hacer cosas mejores.
Si te ha gustado este artículo, coméntalo, si quieres mas información, pídela. Tu tienes completo control sobre los contenidos de este blog.
Python dibuja el gráfico de la función seno y coseno
Número público: tiempo de programación de Python
Hoy planeo dibujar las funciones de seno y coseno, comenzando desde la configuración predeterminada, y ajustarla y mejorarla paso a paso para que se vea bien, como la imagen que aprendimos en la escuela media y secundaria. A través de este proceso, aprenda a ajustar algunos elementos del gráfico.
01. Dibujo simple
matplotlib tiene un conjunto de configuraciones predeterminadas que permiten la personalización de varias propiedades. Puede controlar casi todas las propiedades predeterminadas en matplotlib: tamaño de imagen, puntos por pulgada, ancho de línea, color y estilo, ejes, propiedades de eje y cuadrícula, propiedades de texto y fuente, etc.
Aunque la configuración predeterminada de matplotlib es bastante buena en la mayoría de los casos, es posible que desee cambiar algunas propiedades en algunas situaciones especiales.
from pylab import *
x = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(x), np.sin(x)
plot(x,C)
plot(x,S)
show()
Copiar codigo
show image
02. Establecer elementos básicos
Aquí hay varios elementos básicos:
Color, grosor y tipo de línea de la línea
Escalar y etiquetar
Y leyenda
El código es relativamente simple y básicamente lo cubrí en mi primera conferencia.
import numpy as np
from matplotlib import pyplot as plt
plt.figure(figsize=(10,6), dpi=80)
x = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(x), np.sin(x)
# Establecer el color, grosor y estilo de línea de la línea
Recuerda la imagen de la función trigonométrica que aprendimos en la escuela media y secundaria, pero no es así, debería tener cuatro cuadrantes. Pero aquí hay una tabla cuadrada.
A continuación, lo que tenemos que hacer es mover el eje para que nos parezca familiar.
Solo necesitamos dos ejes (ejes xey), por lo que debemos ocultar los ejes superior y derecho (el color se establece en Ninguno).
# plt.gca (), el nombre completo es obtener eje actual
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# Dado que estamos moviendo los ejes izquierdo e inferior, no necesitamos configurar estos dos.
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
# Especifique el tipo de datos, es decir, muévase al valor especificado
ax.spines['bottom'].set_position(('data',0))
ax.spines['left'].set_position(('data',0))
Copiar codigo
enset_position()¿Qué significan los datos en esta función? Revisé el sitio web oficial. La explicación es la siguiente
Luego finalmente descubrí que la escritura anterior se puede configurar de una manera más concisa y es equivalente.
ax.spines['bottom'].set_position('zero')
ax.spines['left'].set_position('zero')
Copiar codigo
show image
04. Agregar notas
Ahora que se ha formado la parte gráfica, usemos el comando anotar para anotar algunos puntos de interés.
Nosotros elegimos2π/3Como valores de seno y coseno queremos anotar. Haremos una marca y una línea de puntos vertical en la curva. Luego, use el comando anotar para mostrar una flecha y algo de texto.
t = 2*np.pi/3
# Utilice plt.plot para dibujar una línea vertical hacia abajo y plt.scatter para dibujar un punto.
plt.plot([t,t],[0,np.cos(t)], color ='blue', linewidth=2.5, linestyle="--")
Aquí, podrías estarplt.annotateEl uso de esta función es extraño. Explique aquí también.
El primer parámetro es el contenido del comentario; El segundo parámetro,xy, Es comentar sobre qué punto; El tercer parámetro,xycoords, Especifique el tipo, datos significa posicionamiento basado en el valor; El cuarto parámetro,xytext, Es la posición del comentario, combinada con el quinto parámetro, la posición del comentario se determina según el desplazamiento; El quinto parámetro,textcoords, El valor son puntos de compensación, es decir, posición relativa; El sexto parámetro,fontsize, Tamaño del comentario; el séptimo parámetro,arrowprops, Algunos ajustes para el tipo de flecha.
show image
05. Código completo
Lo anterior es una explicación del código del fragmento, aquí está el código completo
import numpy as np
from matplotlib import pyplot as plt
plt.figure(figsize=(10,6), dpi=80)
x = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(x), np.sin(x)
# Establecer el color, grosor y estilo de línea de la línea