Uso de Matplotlib para dibujar gráficos y diagramas

Uso de Matplotlib para dibujar gráficos y diagramas

  • Inteligencia artificial
6 min de lectura Actualizado Aug 30, 2019

Puntos clave: El uso de Matplotlib permite la creación de diversos gráficos y diagramas para una visualización eficaz de datos en entornos como Zeppelin o Jupyter. Soporta una amplia variedad de tipos de gráficos, incluyendo diagramas de líneas, diagramas de dispersión, histogramas y gráficos circulares, permitiendo a los usuarios visualizar datos de forma eficiente.

  • Matplotlib incluye características para anotaciones y múltiples tipos de gráficos.
  • Para mostrar cartas están necesaria una interfaz gráfica, como proporcionan herramientas como Zeppelin y Jupyter.

Si te son trabajar con big data, entonces te necesitas conoce cómo Crea gráficos, que también son conocidos como gráficos. La elaboración de gráficos están un tema que puede ser extremadamente complicado, así que aquí Comienza ejemplos sencillos.

Los gráficos requieren un entorno gráfico

te no puede dibujar gráficos de un programa en Python que se ejecute en un entorno basado en caracteres como un shell bash. En su lugar, te necesita un entorno gráfico.

La mayoría de los científicos de datos utilizan Matplotlib en un navegador, ya que este puede mostrar gráficos. La mejor forma están usando Zeppelin o Jupyter, ya que ambos son intérpretes de código y herramientas que pueden mostrar gráficos.

Matplotlin fue originalmente escrito como la interfaz gráfica para una herramienta llamada matlab. Matlab están usado principalmente por ingenieros y científicos de datos, pero también funciona bien con Python.

Uso de Zeppelin

Ya hemos hablado de Zeppelin aquí antes. Zeppelin te permite ejecutar programas en una variedad de lenguajes de programación en una página web. Soporta Spark, Python, Angular, MarkDown, Livy, un shell Bash y otros. (Como soporta shells bash, no te gustaría ponerlo en una página web pública sin añadirle una contraseña.) Zeppelin también tiene cierta capacidad gráfica integrada, pero para Crea gráficos más avanzados, te necesitarás un producto avanzado de gráficos, como Matplotlib.

Aquí mostramos cómo utiliza Matplot para dibujar gráficos de líneas y dispersión, así como los histogramas. Primero, te necesitas instala Zeppelin, que están tan fácil como descargarlo y descomprimirlo. En Mac, Comienza el daemon con zeppelin-daemon.sh Comienza.

Listas de líneas

Un diagrama de líneas representa un eje frente a otro, como el eje familiar xy usado en el álgebra de secundaria.

Zeppelin funciona con arrays. En el ejemplo de abajo, utiliza la función Numpy np.arange(1,5,0.25) para Crea un array de intervalos espaciados de 0,25. Entonces es tan sencillo como llamar a plot: plt.plot(y, 'bs'), donde bs significa cuadrados azules. Si te le asigno solo un array, entonces asume que esos valores son para el eje y, por lo que calcula automáticamente el eje x.

Diagramas de dispersión

Histograma

    %python
import matplotlib.pyplot as plt
import numpy as np
 
y = np.arange(1,5,0.25)
 
plt.plot(y, 'bs')

Aquí están la carta resultante.

Ahora vamos a añadir anotaciones a la línea. Recuerda que Matplotlib calcula automáticamente los valores x en función de los valores de y. La pendiente (m) de la recta anterior, y = mx +1, está aproximadamente 0,29, solo con mirar visualmente la línea y estimar. Así que vamos a graficar esas coordenadas (x,y) y etiquetar cada punto.

Vamos a Haz el incremento 1 y no 0,25 para evitar saturar el gráfico.

En el código de abajo, la función zip(A.B) de python devuelve tuplas ((x[0],y[0]) .... ) de los arrays A y B. Hacemos esto porque necesitamos cada coordenada x,y en forma de tupel (x,y). Utilizamos los arreglos A y B para contener las coordenadas x,y.

    %python
import matplotlib.pyplot as plt
import numpy as np
 
y = np.arange(0,5,1)

A = []
B = []

for x in range(1, len(y)):
    y= (0.29*x)
    A.append(x)
    B.append(y)

for xy in zip(A,B):
    plt.plot( xy[0],xy[1],'gs')
    plt.annotate('(%s, %s)' % xy, xy=xy, textcoords='data')

Aquí está la misma línea, con cada coordenada (x,y) impresa como una anotación en la línea.

Los gráficos de dispersión representan puntos y no líneas.

    %python
import matplotlib.pyplot as plt
import numpy as np

n = 10
x = np.random.rand(n)
y = np.random.rand(n)
 
plt.scatter(x,y)

Como usamos enteros aleatorios, los puntos son por todas partes. Usamos la función rand() y no randint, así que generó números de coma flotante aleatorios <= 1.

En un histograma, la barra vertical están el porcentaje de todos los puntos para cada valor, también conocida como una distribución de frecuencia. Aquí el 17,5% de los números aleatorios eran 3. El número 100 se está llamado tamaño del array. Aquí tenemos un array 1x100, llamado equivalentemente vector.

Si hubiéramos usado, por ejemplo, x = np.random.randint(low = 0, high = 15, size=[4,4]) se Crea una matriz 4x4 de números aleatorios.

    %python
import matplotlib.pyplot as plt
import numpy as np
 

x = np.random.randint(low = 0, high = 15, size=100) 



plt.figure()
plt.hist(x)

plt.show()

Esto muestra la distribución de frecuencias. En otras palabras, le dijimos que Crea 100 enteros aleatorios entre 0 y 15.

Antes explicamos cómo Crea un gráfico de barras apiladas.

Gráfico circular

A continuación Crea un gráfico circular.  La suma de los porcentajes de cada porción suma el 100%, igual que un histograma.  Así que cada porciónx i (llamada cuña, mi lib de matplot) están xi / suma (x1 ... xn) porcentaje de todo el pastel.

A continuación le damos las etiquetas.  Deben estar en el mismo orden que los datos, ya que Matplotlib no puede averiguarlo automáticamente.  En otras palabras, si las Obtén fuera de orden, tus etiquetas no serán lógicas.

También proporcionamos autopct, para representar el porcentaje en cada cuña.  También podríamos haber puesto una función personalizada ahí.

    %python
import matplotlib.pyplot as plt
import numpy as np

 
x = [100, 200, 300, 400, 500]
labels = ['first', 'second', 'third', 'fourth', 'fifth']

plt.pie(x,labels=labels,autopct='%1.1f%%')

plt.show()

Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.

Más de Inteligencia artificial

¿Te interesa saber más de BMC?

El Brief están nuestro correo mensual sobre el mainframe y la orquestación empresarial: investigación, historias de clientes, noticias de productos, eventos.

Al registrarse para esta oferta te son confirmar que te leído y aceptado la Política de Privacidad de BMC.

Tú te has suscrito a The Brief

El Brief abarca la orquestación de mainframe y empresa—BMC AMI y Control-M—y la investigación de analistas, despliegues de clientes y eventos en ambas áreas.