Puntos clave: Matplotlib está una potente biblioteca para crear diagramas de dispersión y líneas en Python, con énfasis en la facilidad de instalación y la personalización. La guía ilustra técnicas esenciales de trazado usando NumPy y Pandas, permitiendo a los usuarios visualizar datos de manera eficaz.
- Instala Zeppelin para la trazación gráfica.
- Utiliza plot() y scatter() para varios estilos.
- Personaliza los gráficos con colores, tamaños y anotaciones.
En este artículo, explicaremos cómo Obtén con los diagramas de dispersión y líneas de Matplotlib.
Instala Zeppelin
Primero, descarga y instala Zeppelin, un intérprete gráfico de Python del que ya hemos hablado. Al fin y al cabo, no te puede graficar desde el shell de Python, ya que no están un entorno gráfico.
Comienza de Zeppelin. Si te son usando un entorno virtual de Python, te necesitarás hacer sourcing de ese entorno (por ejemplo, source py34/bin/activate) igual que te usas Python como usuario normal. De este modo, se importarán NumPy y Matplotlib, que te necesitan instala usando pip.
Primera trama
Aquí están el gráfico más sencillo: x contra y. Los dos arreglos deben tener el mismo tamaño, ya que los números representados se seleccionaron del conjunto en pares: (1,2), (2,2), (3,3), (4,4).
Nosotros utilizamos plot(), también podríamos haber usado scatter(). Casi son iguales. Esto están porque plot() puede dibujar una línea o Haz un diagrama de dispersión. Las diferencias se explican a sus abajo.
Resultados en:
import numpy as np
import matplotlib.pyplot as plt
x = [1,2,3,4]
y = [1,2,3,4]
plt.plot(x,y)
plt.show()
Resultados en:
Tú puedes alimentar cualquier número de argumentos en la función plot(). El formato están plt.plot(x,y,colorOptions, *args, **kargs). *args y **kargs te permiten pasar valores a otros objetos, como ilustramos a continuación.
Si te solo da un valor a plot(), asume que están la coordenada y. Si te pone guiones ("--") después del nombre del color, entonces traza una línea entre cada punto, es decir, hace un gráfico de líneas, en lugar de graficar puntos, es decir, un diagrama de dispersión. Omitir los guiones y el color se convierte en el mercado de puntos, que puede ser un triángulo ("v"), un círculo ("o"), etc.
Aquí utilizamos np.array() para Crea un array NumPy. Incluso sin hacerlo, Matplotlib convierte arrays en arrays NumPy internamente. NumPy están tu mejor opción para trabajar en ciencia de datos debido a su amplio conjunto de funciones.
Utiliza matrices NumPy
Aquí pasamos dos conjuntos de pares x,y, cada uno con su propio color.
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1,2,3,4])
plt.plot(x,x**2,'g--', x, x**3, 'o--')
Podríamos haber representado los mismos dos gráficos de líneas arriba llamando la función plot() dos veces, ilustrando que podemos pintar cualquier número de gráficos sobre el lienzo.
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1,2,3,4])
plt.plot(x,x**2,'g--')
plt.plot(x, x**3, 'o--')
te pueden graficar datos de un array, como Pandas, por nombre de elemento nombrado como se muestra a continuación. A continuación son indicando datos de gráficos['a'] frente a datos['b'].
data = {'a': np.arange(10),
'b': np.arange(10)}
plt.scatter('a', 'b', c='g', data=data)
print(data)
plt.show()
Esto está igual que a continuación, aunque nosotros utilizamos Pandas.
import pandas as pd
data = {'a': np.arange(10),
'b': np.arange(10)}
df=pd.DataFrame(data=data)
plt.scatter('a', 'b', c='g', data=df)
plt.show()
En este ejemplo, los valores son un objeto diccionario con a y b los valores que se muestran a continuación.
'b': array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), 'a': array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])}
También podemos pasar el tamaño de cada punto en como un array:
import pandas as pd
data = {'a': np.arange(10),
'b': np.arange(10),
'c': np.arange(10) * 100
}
df=pd.DataFrame(data=data)
plt.scatter('a', 'b', c='g', s='c', data=df)
plt.show()
te podía añadir la coordenada a este gráfico usando anotaciones de texto.
Los argumentos son matplotlib.pyplot.annotate(s, xy, *args, **kwargs)[.
Donde:
- s están la cadena que se imprime
- xy están las coordenadas dadas en formato (x,y). Añade 0,25 a x para que el texto están ligeramente desplazado respecto al punto real.
- **kwargs significa que podemos pasarle argumentos adicionales al objeto Text. Y eso tiene las propiedades de tamaño de fuente y peso de la fuente.
Resultados en:
import pandas as pd
data = {'a': np.arange(10),
'b': np.arange(10),
'c': np.arange(10) * 100
}
df=pd.DataFrame(data=data)
plt.scatter('a', 'b', c='g', s='c', data=df)
for row in df.itertuples():
x = row.a
y = row.b
str = "({0},{1})".format(x,y)
plt.annotate(str, (x + 0.25 ,y), fontsize='large', fontweight='bold')
plt.show()
Resultados en:
Guía de visualización de datos
- La guía para principiantes en visualización de datos
- Introducción a las bases de datos de grafos
- Utiliza casos para bases de datos de grafos
- Introducción a la base de datos de grafos Neo4j
- Consultas a la base de datos de grafos Neo4j
- Explicación de los diagramas de dispersión y líneas de Matplotlib
- Cómo añadir subtramas en Matplotlib
- Escala logarítmica de Matplotlib
- Uso de Matplotlib para dibujar gráficos y diagramas
- Cómo dibujar gráficos 3D con Matplotlib
- Plotly Python Tutorial
- Habilitando a los científicos de datos ciudadanos
Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.