Python Language
Visualización de datos con Python
Buscar..
Matplotlib
Matplotlib es una biblioteca de trazado matemático para Python que proporciona una variedad de funciones de trazado diferentes.
La documentación de matplotlib se puede encontrar aquí , con los SO Docs disponibles aquí .
Matplotlib proporciona dos métodos distintos para trazar, aunque son intercambiables en su mayor parte:
- En primer lugar, matplotlib proporciona la interfaz
pyplot
, una interfaz directa y fácil de usar que permite trazar gráficos complejos en un estilo similar a MATLAB. - En segundo lugar, matplotlib permite al usuario controlar los diferentes aspectos (ejes, líneas, tics, etc.) directamente mediante un sistema basado en objetos. Esto es más difícil pero permite un control completo sobre toda la trama.
A continuación se muestra un ejemplo del uso de la interfaz pyplot
para trazar algunos datos generados:
import matplotlib.pyplot as plt
# Generate some data for plotting.
x = [0, 1, 2, 3, 4, 5, 6]
y = [i**2 for i in x]
# Plot the data x, y with some keyword arguments that control the plot style.
# Use two different plot commands to plot both points (scatter) and a line (plot).
plt.scatter(x, y, c='blue', marker='x', s=100) # Create blue markers of shape "x" and size 100
plt.plot(x, y, color='red', linewidth=2) # Create a red line with linewidth 2.
# Add some text to the axes and a title.
plt.xlabel('x data')
plt.ylabel('y data')
plt.title('An example plot')
# Generate the plot and show to the user.
plt.show()
Tenga en cuenta que se plt.show()
que plt.show()
es problemático en algunos entornos debido a la ejecución de matplotlib.pyplot
en modo interactivo, y si es así, el comportamiento de bloqueo se puede anular explícitamente al pasar un argumento opcional, plt.show(block=True)
, para paliar el problema.
Seaborn
Seaborn es una envoltura alrededor de Matplotlib que facilita la creación de gráficos estadísticos comunes. La lista de gráficos admitidos incluye gráficos de distribución univariada y bivariada, gráficos de regresión y varios métodos para representar variables categóricas. La lista completa de las parcelas que proporciona Seaborn se encuentra en su referencia API .
Crear gráficos en Seaborn es tan simple como llamar a la función de gráficos apropiada. Este es un ejemplo de la creación de un histograma, una estimación de la densidad del kernel y una gráfica de tap para datos generados aleatoriamente.
import numpy as np # numpy used to create data from plotting
import seaborn as sns # common form of importing seaborn
# Generate normally distributed data
data = np.random.randn(1000)
# Plot a histogram with both a rugplot and kde graph superimposed
sns.distplot(data, kde=True, rug=True)
El estilo de la trama también se puede controlar mediante una sintaxis declarativa.
# Using previously created imports and data.
# Use a dark background with no grid.
sns.set_style('dark')
# Create the plot again
sns.distplot(data, kde=True, rug=True)
Como un bono adicional, los comandos normales de matplotlib todavía se pueden aplicar a los gráficos de Seaborn. Aquí hay un ejemplo de cómo agregar títulos de ejes a nuestro histograma creado anteriormente.
# Using previously created data and style
# Access to matplotlib commands
import matplotlib.pyplot as plt
# Previously created plot.
sns.distplot(data, kde=True, rug=True)
# Set the axis labels.
plt.xlabel('This is my x-axis')
plt.ylabel('This is my y-axis')
MayaVI
MayaVI es una herramienta de visualización 3D para datos científicos. Utiliza el kit de herramientas de visualización o VTK debajo del capó. Usando el poder de VTK , MayaVI es capaz de producir una variedad de gráficos y figuras tridimensionales. Está disponible como una aplicación de software independiente y también como una biblioteca. Similar a Matplotlib , esta biblioteca proporciona una interfaz de lenguaje de programación orientada a objetos para crear gráficos sin tener que saber acerca de VTK .
¡MayaVI está disponible solo en la serie Python 2.7x! ¡Se espera que esté disponible en la serie Python 3-x pronto! (Aunque se nota cierto éxito al usar sus dependencias en Python 3)
La documentación se puede encontrar aquí . Algunos ejemplos de galerías se encuentran aquí.
Aquí hay una muestra de la parcela creada usando MayaVI de la documentación.
# Author: Gael Varoquaux <[email protected]>
# Copyright (c) 2007, Enthought, Inc.
# License: BSD Style.
from numpy import sin, cos, mgrid, pi, sqrt
from mayavi import mlab
mlab.figure(fgcolor=(0, 0, 0), bgcolor=(1, 1, 1))
u, v = mgrid[- 0.035:pi:0.01, - 0.035:pi:0.01]
X = 2 / 3. * (cos(u) * cos(2 * v)
+ sqrt(2) * sin(u) * cos(v)) * cos(u) / (sqrt(2) -
sin(2 * u) * sin(3 * v))
Y = 2 / 3. * (cos(u) * sin(2 * v) -
sqrt(2) * sin(u) * sin(v)) * cos(u) / (sqrt(2)
- sin(2 * u) * sin(3 * v))
Z = -sqrt(2) * cos(u) * cos(u) / (sqrt(2) - sin(2 * u) * sin(3 * v))
S = sin(u)
mlab.mesh(X, Y, Z, scalars=S, colormap='YlGnBu', )
# Nice view from the front
mlab.view(.0, - 5.0, 4)
mlab.show()
Plotly
Plotly es una plataforma moderna para el trazado y visualización de datos. Útil para producir una variedad de gráficos, especialmente para ciencias de datos, Plotly está disponible como una biblioteca para Python , R , JavaScript , Julia y MATLAB . También se puede utilizar como una aplicación web con estos idiomas.
Los usuarios pueden instalar plotly library y usarlo fuera de línea después de la autenticación del usuario. La instalación de esta biblioteca y la autenticación fuera de línea se da aquí . Además, las parcelas se pueden hacer en Jupyter Notebooks también.
El uso de esta biblioteca requiere una cuenta con nombre de usuario y contraseña. Esto proporciona el espacio de trabajo para guardar gráficos y datos en la nube.
La versión gratuita de la biblioteca tiene algunas características ligeramente limitadas y está diseñada para hacer 250 parcelas por día. La versión de pago tiene todas las características, descargas de parcelas ilimitadas y más almacenamiento de datos privados. Para más detalles, se puede visitar la página principal aquí .
Para documentación y ejemplos, se puede ir aquí.
Un diagrama de muestra de los ejemplos de documentación:
import plotly.graph_objs as go
import plotly as ply
# Create random data with numpy
import numpy as np
N = 100
random_x = np.linspace(0, 1, N)
random_y0 = np.random.randn(N)+5
random_y1 = np.random.randn(N)
random_y2 = np.random.randn(N)-5
# Create traces
trace0 = go.Scatter(
x = random_x,
y = random_y0,
mode = 'lines',
name = 'lines'
)
trace1 = go.Scatter(
x = random_x,
y = random_y1,
mode = 'lines+markers',
name = 'lines+markers'
)
trace2 = go.Scatter(
x = random_x,
y = random_y2,
mode = 'markers',
name = 'markers'
)
data = [trace0, trace1, trace2]
ply.offline.plot(data, filename='line-mode')