Visualización de Datos con Python
Por Jose R. Zapata
Invítame a un Café
Python cuenta con varias librerias para visualizacion las principale son:
matplotlib para graficas sencillas: bars, pies, lines, scatter plots, etc.
Seaborn para visualizacion estadistica: Para crear mapas de calor o de alguna
manera resumiendo los datos y aún desea mostrar la distribución de los datos.
Plotly y Bokeh para visualizacion interactiva: Si los datos son tan complejos
(o no puede ver la informacion de sus datos), utilice plotly y Bokeh para crear
visualizaciones interactivas que permitan a los usuarios explorar los datos
mismos.
Importancia de la visualizacion
El siguiente codigo demostrara El cuarteto de Anscombe demostracion realizada por
el estadístico F. J. Anscombe.
Estos datos que estan conformados por 4 dataset demuestra la importancia de la
visualizacion de los datos para su analisis.
import pandas as pd # libreria manipulacion de datos
import seaborn as sns # Libreria graficas
import numpy as np
%matplotlib inline
anscombe =
pd.read_csv('[Link]
[Link]')
anscombe
dataset x y
0 I 10. 8.04
dataset x y
1 I 8.0 6.95
13.
2 I 7.58
0
3 I 9.0 8.81
11.
4 I 8.33
0
14.
5 I 9.96
0
6 I 6.0 7.24
7 I 4.0 4.26
12.
8 I 10.84
0
9 I 7.0 4.82
1
I 5.0 5.68
0
1 10.
II 9.14
1 0
1
II 8.0 8.14
2
1 II 13. 8.74
dataset x y
3 0
1
II 9.0 8.77
4
1 11.
II 9.26
5 0
1 14.
II 8.10
6 0
1
II 6.0 6.13
7
1
II 4.0 3.10
8
1 12.
II 9.13
9 0
2
II 7.0 7.26
0
2
II 5.0 4.74
1
2 10.
III 7.46
2 0
2
III 8.0 6.77
3
2 III 13. 12.74
dataset x y
4 0
2
III 9.0 7.11
5
2 11.
III 7.81
6 0
2 14.
III 8.84
7 0
2
III 6.0 6.08
8
2
III 4.0 5.39
9
3 12.
III 8.15
0 0
3
III 7.0 6.42
1
3
III 5.0 5.73
2
3
IV 8.0 6.58
3
3
IV 8.0 5.76
4
3 IV 8.0 7.71
dataset x y
3
IV 8.0 8.84
6
3
IV 8.0 8.47
7
3
IV 8.0 7.04
8
3
IV 8.0 5.25
9
4 19.
IV 12.50
0 0
4
IV 8.0 5.56
1
4
IV 8.0 7.91
2
4
IV 8.0 6.89
3
Calcular los valores de la media y la varianza de cada dataset
agg = [Link]('dataset').agg([[Link], [Link]])
agg
x y
mean var mean var
datase
t
I 9.0 11.0 7.500909 4.127269
II 9.0 11.0 7.500909 4.127629
III 9.0 11.0 7.500000 4.122620
IV 9.0 11.0 7.500909 4.123249
Calcular la correlacion
corr = [[Link]()['x'][1] for _, g in [Link]('dataset')]
corr
[0.81642051634484, 0.8162365060002428, 0.8162867394895981,
0.8165214368885028]
Graficar los datasets, haciendo un scatterplot y una regression lineal
# Grafica Usando seaborn
[Link](style="ticks")
[Link](x="x", y="y", col="dataset", hue="dataset",
data=anscombe,
col_wrap=2, ci=None, palette="muted", height=4,
scatter_kws={"s": 50, "alpha": 1});
Calculo de los valores de la regresion lineal
fits = [[Link](g['x'], g['y'], 1) for _, g in
[Link]('dataset')]
# Almacenar los valores calculados de las regresiones lineales en un
dataframe
val_reg =
[Link](fits,columns=['pendiente','intercepto'],index='I II II
IV'.split())
val_reg.[Link] = ['dataset']
val_reg
pendiente intercepto
dat
aset
I 0.500091 3.000091
II 0.500000 3.000909
II 0.499727 3.002455
IV 0.499909 3.001727
MATPLOTLIB
Matplotlib es el “abuelo” de las librerias de visualización de datos con Python. Fue
creado por John Hunter. Lo creó para tratar de replicar las capacidades de graficar de
MatLab en Python.
Es una excelente biblioteca de gráficos 2D y 3D para generar figuras científicas.
Algunos de los principales Pros de Matplotlib son:
Generalmente es fácil comenzar por graficas simples
Soporte para etiquetas personalizadas y textos
Gran control de cada elemento en una figura
Salida de alta calidad en muchos formatos
Muy personalizable en general
Matplotlib le permite crear figuras reproducibles mediante programación. la página
web oficial de Matplotlib: [Link]
Instalacion
Se debe instalar Matplotlib, pero si instalo Anaconda ya viene instalado, en caso de
que no lo tenga se puede instalar asi:
pip install matplotlib o conda install matplotlib
en Jupyter notebook !pip install matplotlib
usar preferiblemente Conda.
Importar la libreria
Importar el modulo [Link] con el nombre de plt (esto es un
estandar en la comunidad):
import [Link] as plt
Para ver las graficas directamente en este notebook se debe hacer con este comando:
%matplotlib inline
Esa línea es solo para Jupyter notebooks, si está usando otro editor,
usará: [Link]() al final de todos sus comandos de graficos para que aparezca
la figura en otra ventana.
# La mayoria de los datos son inventados para evitar los warnings
por divisiones por cero
# o valores igual a infinito, entonces apagare los warnings
import warnings; [Link]('ignore')
Comandos Basicos de Matplotlib
Veamos un ejemplo muy simple usando dos arreglos numpy. También se pueden usar
listas, pero lo más probable es usar arreglos Numpy o columnas de pandas (que
esencialmente también se comportan como arreglos). Los datos que queremos
graficar:
import numpy as np
x = [Link](0,5, 11)
y = x ** 2
x
array([0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. ])
y
array([ 0. , 0.25, 1. , 2.25, 4. , 6.25, 9. , 12.25,
16. ,
20.25, 25. ])
Podemos crear un diagrama de líneas muy simple usando lo siguiente:
# Metodo basico para graficar X vs Y
[Link](x, y) # se grafica una linea de color azul
[Link]() # Mostrar la grafica luego de que ya se definio todos los
elementos
# [Link]() no es necesario en jupyter notebook
Titulo
[Link](x, y) # se grafica una linea de color azul
[Link]('Titulo de la grafica'); # definir el titulo de la grafica
Nombres de los ejes
[Link](x, y) # se grafica una linea de color azul
[Link]('Nombre del eje X') # definir el nombre del eje X
[Link]('Nombre del eje Y') # definir el nombre del eje Y
[Link]('Titulo de la grafica'); # definir el titulo de la grafica
Legend
Puede usar el argumento de palabra clave label = “texto de etiqueta” cuando se
agreguen gráficas u otros objetos a la figura, y luego usar el método legend sin
argumentos para agregar la leyenda a la figura:
[Link](x, y, label="x vs y") # se grafica una linea de color azul
# se pone en el atributo 'label' el textto deseado
[Link]('Nombre del eje X') # definir el nombre del eje X
[Link]('Nombre del eje Y') # definir el nombre del eje Y
[Link]('Titulo de la grafica') # definir el titulo de la grafica
[Link](); # agregar el legend al plot
¡Observe cómo la leyenda se superpone con parte de la grafica!
EL Metodo legend toma un argumento opcional de palabra clave loc que puede
usarse para especificar en qué parte de la figura debe dibujarse la leyenda. Los
valores permitidos de loc son códigos numéricos para los diversos lugares donde se
puede dibujar la leyenda. Consulte la página de documentación para obtener detalles.
Cuadricula (Grid )
[Link](x, y, label="x vs y") # se grafica una linea de color azul
# se pone en el atributo 'label' el textto deseado
[Link]('Nombre del eje X') # definir el nombre del eje X
[Link]('Nombre del eje Y') # definir el nombre del eje Y
[Link]('Titulo de la grafica') # definir el titulo de la grafica
[Link]() # agregar el legend al plot
[Link](True) # poner grid en la grafica
Tamaño de la Figura y DPI
Matplotlib permite especificar la relación de aspecto, el DPI y el tamaño de la figura
cuando se crea el objeto Figure. Puede usar los argumentos de las palabras
clave figsize y dpi. No es necesario poner las dos.
figsize es una tupla del ancho y alto de la figura en pulgadas
dpi es el punto por pulgada (pixel por pulgada).
# se cambia el tamaño de la figura y el numero de puntos por pulgada
[Link](figsize=(8,4), dpi=100)
[Link](x, y) # se grafica una linea de color azul
[Link]('Nombre del eje X') # definir el nombre del eje X
[Link]('Nombre del eje Y') # definir el nombre del eje Y
[Link]('Titulo de la grafica'); # definir el titulo de la grafica
# agrego ; al final del ultimo comando para solo mostrar la grafica
# [Link]() no es necesario en jupyter notebook
Parametros de las lineas: colores, ancho y tipos
Matplotlib le brinda muchas opciones para personalizar colores, anchos de línea y
tipos de línea.
Existe la sintaxis básica que se puede consultar en:
[Link]
Colores Basicos
Con matplotlib, podemos definir los colores de las líneas y otros elementos gráficos
de varias maneras. En primer lugar, podemos usar la sintaxis similar a MATLAB
donde 'b' significa azul,'g' significa verde, etc. También se admite la API
MATLAB para seleccionar estilos de línea: donde, por ejemplo, ‘b.-‘significa una
línea azul con puntos:
# Estilo MATLAB de estilo y color de linea
[Link](x, x**2, 'b.-') # linea azul con puntos
[Link](x, x**3, 'g--'); # Linea verde discontinua
Colores usando el parametro color
También podemos definir colores por sus nombres o códigos hexadecimales RGB y,
opcionalmente, proporcionar un valor alpha utilizando los argumentos de palabras
clave color y alpha. Alpha indica opacidad.
[Link](x, x, color="red") # Medio transparente
[Link](x, x+1, color="red", alpha=0.5) # Medio transparente
[Link](x, x+2, color="#8B008B") # RGB hex code
[Link](x, x+3, color="#F08C08"); # RGB hex code
[Link](True) # poner grid en la grafica
Estilos de Lineas y marcadores
Para cambiar el ancho de línea, podemos usar el argumento de la palabra
clave linewidth o lw. El estilo de línea se puede seleccionar usando los
argumentos de palabras clave linestyle o ls:
[Link](figsize=(12,6))
[Link](x, x+1, color="red", linewidth=0.25)
[Link](x, x+2, color="red", linewidth=0.50)
[Link](x, x+3, color="red", linewidth=1.00)
[Link](x, x+4, color="red", linewidth=2.00)
# posibles opciones linestype ‘-‘, ‘–’, ‘-.’, ‘:’, ‘steps’
[Link](x, x+5, color="green", lw=3, linestyle='-')
[Link](x, x+6, color="green", lw=3, ls='-.')
[Link](x, x+7, color="green", lw=3, ls=':')
# lineas parametrizadas
line, = [Link](x, x+8, color="black", lw=1.50)
line.set_dashes([5, 10, 15, 10]) # formato: longitud de linea,
longitud de espacio, ...
# posibles simbolos del marcas: marker = '+', 'o', '*', 's', ',',
'.',bb '1', '2', '3', '4', ...
[Link](x, x+ 9, color="blue", lw=3, ls='-', marker='+')
[Link](x, x+10, color="blue", lw=3, ls='--', marker='o')
[Link](x, x+11, color="blue", lw=3, ls='-', marker='s')
[Link](x, x+12, color="blue", lw=3, ls='--', marker='1')
# tamaño y color de la marca
[Link](x, x+13, color="purple", lw=1, ls='-', marker='o',
markersize=2)
[Link](x, x+14, color="purple", lw=1, ls='-', marker='o',
markersize=4)
[Link](x, x+15, color="purple", lw=1, ls='-', marker='o',
markersize=8, markerfacecolor="red")
[Link](x, x+16, color="purple", lw=1, ls='-', marker='s',
markersize=8,
markerfacecolor="yellow", markeredgewidth=3,
markeredgecolor="green");
Para mas
informacion: [Link]
Subplots
# la funcion es [Link](nrows, ncols, plot_number)
[Link](1,2,1) # subplot fila=1 Col=2, grafica=1
[Link](x, y, 'r--') # r-- color rojo y linea discontinua
[Link](1,2,2) # subplot fila=1 Col=2, grafica=2
[Link](y, x, 'g*-'); # para no mostrar info de la funcion
plt.tight_layout() # para que no se superpongan las graficas
Multiples subplots
Crear subplot de diferentes tamaños se puede lograr con el
metodo .subplot2grid() Mas informacion en el
link: [Link]
plt.subplot2grid((3,3), (0,0), colspan=3)
plt.subplot2grid((3,3), (1,0), colspan=2)
plt.subplot2grid((3,3), (1,2), rowspan=2)
plt.subplot2grid((3,3), (2,0))
plt.subplot2grid((3,3), (2,1))
plt.tight_layout() # para que no se superpongan las graficas
Rango del Plot
Podemos configurar los rangos de los ejes usando los métodos ylim y xlim en el
objeto del eje, o axis('tight') para obtener automáticamente rangos de ejes
“tightly fitted”:
[Link](figsize=(12, 4))
[Link](1,3,1)
[Link](x, x**2, x, x**3)
[Link]("Rango por defecto de los ejes")
[Link](1,3,2)
[Link](x, x**2, x, x**3)
[Link]('tight')
[Link]("Ejes apretados")
[Link](1,3,3)
[Link](x, x**2, x, x**3)
[Link]([0, 60])
[Link]([2, 5])
[Link]("ejes de rango personalizados");
plt.tight_layout() # para que no se superpongan las graficas
Escala Logaritmica
[Link](figsize=(10,4))
[Link](1,2,1)
[Link](x, x**2, x, [Link](x))
[Link]("escala Normal")
[Link](1,2,2)
[Link](x, x**2, x, [Link](x))
[Link]("log")
[Link]("Escala Logaritmica(y)");
plt.tight_layout() # para que no se superpongan las graficas
Anotaciones de texto
Anotar texto en figuras matplotlib se puede hacer usando la función text. Es
compatible con el formato LaTeX al igual que los textos y títulos de la etiqueta del
eje:
# Datos para graficar
xx = [Link](-0.75, 1., 100)
[Link](xx, xx**2, xx, xx**3)
[Link]("Plot con anotaciones")
# Anotacion 1
[Link](0.15, 0.2, r"$y=x^2$", fontsize=20, color="blue")
#Anotacion 2
[Link](0.65, 0.1, r"$y=x^3$", fontsize=20, color="green");
Matplotlib Método orientado a objetos
Lo demostrado hasta el momento es la forma basica de usar Matplotlib, pero la
libreria se puede usar mediante la programacion orientada a objtetos con el
Matplotlib’s Object Oriented API. Esto significa que se creara una instancia del
objeto de figura y luego llamaremos a métodos o atributos de ese objeto. La idea
principal al utilizar el método más formal orientado a objetos es crear objetos de
figura y luego simplemente invocar métodos o atributos fuera de ese objeto. Este
enfoque es más agradable cuando se trata de una figura que tiene múltiples graficos
en él. Mas informacion: [Link]
oriented-api
Un ejemplo de matplotlib orientado a objetos:
# Se crea una figura y 2 subplots
# cada subplt se accede por medio de los objetos axes
fig, axes = [Link](nrows=1, ncols=2)
for ax in axes:
[Link](x, y, 'g')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_title('title')
plt.tight_layout() # para que no se superpongan las graficas
Tipos Especiales de Plots
Hay muchas Graficas especializadas que podemos crear, como barras, histogramas,
diagramas de dispersión y mucho más. La mayoría de este tipo de tramas lo
crearemos usando seaborn, una biblioteca de gráficos estadísticos para Python. Pero
aquí hay algunos ejemplos de este tipo de graficos
Scatter Plot (Dispersion)
#Grafica X vs Y
# crear datos aleatorios
N = 50
x = [Link](N)
y = [Link](N)
[Link](x, y)
[Link]("Scatter plot Simple");
[Link]() # En jupyter notebook no es necesario este comando
Con las graficas de scatter o dispersion se pueden representar mas de 2 variables en
una misma grafica, en el siguiente ejemplo se realizara la comparacion de x vs
y el color de los puntos se representara con otra variable y el tamaño de los puntos
sera otra variable
# se creara otra variable que se representara con colores
colors = [Link](N) # usar colores aleatorios
# se creara otra variable que se representara con el area de los
puntos
area = [Link] * (15 * [Link](N))**2 # 0 to 15 point radio
[Link](x, y, s=area, c=colors, alpha=0.5) # el atributo alpha
es para la transparencia
[Link]("Scatter plot de representacion de 4 variables");
Histograma
Un histograma es una representación gráfica de una variable en forma de barras,
donde la superficie de cada barra es proporcional a la frecuencia de los valores
representados. Sirven para obtener una “primera vista” general, o panorama, de la
distribución de la población, o de la muestra, respecto a una característica,
cuantitativa y continua
# crear datos aleatorios
from random import sample
data = sample(range(1, 1000), 100)
[Link](data,bins = 10) # bins el numero de divisiones del
histograma
[Link]("Histograma");
Boxplot
Informacion sobre el boxplot -> [Link]
Primer cuartil (Q1) como la mediana de la primera mitad de valores
Segundo cuartil (Q2) como la propia mediana de la serie
Tercer cuartil (Q3) como la mediana de la segunda mitad de valores.
La diferencia entre el tercer cuartil y el primero se conoce como rango intercuartíl
#crear datos aleatorios
data = [[Link](0, std, 100) for std in range(1, 4)]
# boxplot rectangular
[Link](data,vert=True,patch_artist=True);
[Link]("Boxplot");
Diagramas de Violin
Permiten ver como es la distribucion de los datos
all_data = [[Link](0, std, 100) for std in range(6, 10)]
# grafico de violin, se puede activar la visualizacion de la media y
de la mediana
[Link](all_data, showmeans=False, showmedians=True)
[Link]('violin plot');
Diagramas de Violin vs Boxplot
Se grafiara usando programacino orientada a objetos con Matplolib la comparacion
entre las graficas de violin y las de boxplot
fig, axes = [Link](nrows=1, ncols=2, figsize=(12, 4))
# generar datos aleatorios
all_data = [[Link](0, std, 100) for std in range(6, 10)]
# plot de violin
axes[0].violinplot(all_data,
showmeans=False,
showmedians=True)
axes[0].set_title('violin plot')
# plot box plot
axes[1].boxplot(all_data)
axes[1].set_title('box plot')
# agregando lineas horizontales
for ax in axes:
[Link](True)
ax.set_xticks([y+1 for y in range(len(all_data))])
ax.set_xlabel('xlabel')
ax.set_ylabel('ylabel')
# agragando los nombres a las divisiones del eje x (x-tick labels)
[Link](axes, xticks=[y+1 for y in range(len(all_data))],
xticklabels=['x1', 'x2', 'x3', 'x4'])
[Link]("Violin vs Boxplot",fontsize = 14) # titulo general de
la grafica
[Link]()
Diagramas de torta
No usarlos, los humanos no somos buenos discriminando angulos
labels = 'Caballos', 'Cerdos', 'Perros', 'Vacas'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0) # solo "Saque" el 2do pedazo (ejem.
'cerdos')
[Link](sizes, explode=explode, labels=labels, autopct='%1.1f%%',
shadow=True, startangle=90)
[Link]('equal') #La relación de aspecto igual garantiza que el
círculo sea homogeneo
[Link]()
Diagramas de error
# generacion de datos aleatorios
x = [Link](0.1, 4, 0.5)
y = [Link](-x)
# Graficas de error
[Link](x, y, xerr=0.2, yerr=0.4)
[Link]("Diagrama de error")
[Link]()
[Link]()
Guardando las figuras
Matplotlib puede generar resultados de alta calidad en varios formatos, incluidos
PNG, JPG, EPS, SVG, PGF y PDF. Para guardar una figura en un archivo, podemos
usar el método savefig de la clase Figure:
Lo primero es antes de crear una grafica definir la clase Figure al principio de
todo la grafica, Ejemplo:
fig = [Link](figsize=(10,4)) [Link](x,
y) [Link]("Scatter plot Simple");
[Link]("[Link]")
Aquí también podemos especificar opcionalmente el DPI y elegir entre diferentes
formatos de salida (PNG, JPG, EPS, SVG, PGF y PDF):
[Link]("[Link]", dpi=200)
VISUALIZACION CON PANDAS
Pandas tiene funciones incorporadas para la visualización de datos. Está construido
sobre matplotlib, pero se usa el formato de pandas para un uso más fácil. Mas
informacion en: [Link]
Los parametros de las graficas se pueden modificar con matplotlib.
Importar la libreria
import pandas as pd
import numpy as np
%matplotlib inline
Datos para graficar:
df1 =
pd.read_csv('[Link]
csv')
[Link]()
h
displ orse wei accelera model_ or
mpg cylinders name
acement pow ght tion year igin
er
0 18.0 8 307.0 1 35 12.0 70 us chevrolet
h
displ orse wei accelera model_ or
mpg cylinders name
acement pow ght tion year igin
er
30.0 04 a chevelle malibu
1 36 us buick skylark
1 15.0 8 350.0 11.5 70
65.0 93 a 320
1 34 us plymouth
2 18.0 8 318.0 11.0 70
50.0 36 a satellite
1 34 us amc rebel
3 16.0 8 304.0 12.0 70
50.0 33 a sst
1 34 us
4 17.0 8 302.0 10.5 70 ford torino
40.0 49 a
df2 =
pd.read_csv('[Link]
.csv')
[Link]()
sepal_len sepal_wi petal_len petal_wi spe
gth dth gth dth cies
set
0 5.1 3.5 1.4 0.2
osa
set
1 4.9 3.0 1.4 0.2
osa
set
2 4.7 3.2 1.3 0.2
osa
3 4.6 3.1 1.5 0.2 set
sepal_len sepal_wi petal_len petal_wi spe
gth dth gth dth cies
osa
set
4 5.0 3.6 1.4 0.2
osa
Hojas de estilo(Style Sheets)
Matplotlib tien Hojas de estilo se pueden usar para hacer que las graficas se vean un
poco mejor. Estas hojas de estilo
incluyen plot_bmh, plot_fivethirtyeight, plot_ggplot y
más. Básicamente, crean un conjunto de reglas de estilo que siguen las gráficas. Es
Recomendable usarlos, pues hacen que todas las graficas tengan el mismo aspecto y
se sientan más profesionales.
Antes de usasr [Link]() las graficas se ven así:
df1['acceleration'].hist();
Usar el estilo ggplot
import [Link] as plt
[Link]('ggplot')
Ahora las graficas se ven asi:
df1['acceleration'].hist();
[Link]('bmh')
df1['acceleration'].hist();
[Link]('dark_background')
df1['acceleration'].hist();
[Link]('fivethirtyeight')
df1['acceleration'].hist();
# El estilo por defecto es
[Link]('classic')
df1['acceleration'].hist();
# Seguire usando el estilo ggplot para ver los tipos de grafica de
pandas
[Link]('ggplot')
Tipos de graficas en Pandas
Hay varios tipos de plots integradas a pandas, la mayoría de estos plots sobn para
estadística por naturaleza:
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
También se puede llamar a [Link](kind = 'hist') o reemplazar ese
argumento kind con cualquiera de los términos clave que se muestran en la lista
anterior (por ejemplo, ‘box’, ‘barh’, etc.)
Area
# Se puede hacer de las siguiente manera
#[Link](kind='area',alpha = 0.4)
[Link](alpha=0.4);
Barplots
# Visualizacion de datos
[Link]()
sepal_len sepal_wi petal_len petal_wi spe
gth dth gth dth cies
set
0 5.1 3.5 1.4 0.2
osa
1 4.9 3.0 1.4 0.2 set
sepal_len sepal_wi petal_len petal_wi spe
gth dth gth dth cies
osa
set
2 4.7 3.2 1.3 0.2
osa
set
3 4.6 3.1 1.5 0.2
osa
set
4 5.0 3.6 1.4 0.2
osa
# los nombres de cada columna equivalen a un color diferente
# Solo se graficaran algunos datos
[Link][2:8].[Link]();
[Link][2:8].[Link](stacked=True);
Histogramas
[Link]()
m cylin displacem horsepo wei accelera model_y or
name
pg ders ent wer ght tion ear igin
chevrol
1 35 us et
0 8 307.0 130.0 12.0 70
8.0 04 a chevelle
malibu
buick
1 36 us
1 8 350.0 165.0 11.5 70 skylark
5.0 93 a
320
2 1 8 318.0 150.0 34 11.0 70 us plymo
m cylin displacem horsepo wei accelera model_y or
name
pg ders ent wer ght tion ear igin
uth
8.0 36 a
satellite
1 34 us amc
3 8 304.0 150.0 12.0 70
6.0 33 a rebel sst
1 34 us ford
4 8 302.0 140.0 10.5 70
7.0 49 a torino
df1['acceleration'].[Link](bins=50);
Lineas
# eje y = valores de la acceleracion
# eje x = valores del index
# atributo lw es el grosor de la linea
[Link](y='acceleration',figsize=(12,3),lw=1);
Scatter Plots
[Link](x='acceleration',y='mpg');
Se puede usar c para indicar el color de los valores de otra columna Con cmap se
indica el mapa de colores que se usaran. Para ver los colormaps
existente: [Link]
[Link](x='acceleration',y='mpg',c='model_year',cmap='coolw
arm');
O se puede usar s para indicar el tamaño de los puntos. El parametro s debe ser un
arreglo, no solo el nombre de una columna:
[Link](x='acceleration',y='mpg',s=df1['horsepower']*2);
BoxPlots
[Link](); # Tambien se puede poner by= argumento para groupby
Diagrama de Torta
serie = [Link](3 * [Link](4), index=['a', 'b', 'c', 'd'],
name='series')
[Link](figsize=(6, 6));
Hexagonal
Util para datos de 2 variables, alternativa al scatterplot:
[Link](x='acceleration',y='mpg',gridsize=25,cmap='Oranges')
;
Kernel Density Estimation Plot(KDE)
df1['weight'].[Link]();
[Link]();
Scatter Matrix
[Link].scatter_matrix(df2, figsize=(8, 8));
Parametros de las graficas
Graficar con Pandas es un método de hacer graficas mucho más fácil de usar que
matplotlib, equilibra la facilidad de uso con control sobre la figura. Muchas de las
llamadas a gráficos también aceptan argumentos adicionales de matplotlib plt.
[Link]() # grafico de densidad con pandas
[Link]('Grafica de densidad de varias variables')
[Link](False)
[Link]([]);# Para eliminar los numeros del eje
# La misma grafica pero adicionando los parametros en los argumentos
[Link](title='Grafica de densidad de varias variables',
grid=False,
xticks = []);
Referencias
[Link]
[Link] - Una gran galería que muestra varios tipos de
graficos matplotlib. ¡Muy recomendable!
Matplotlib cheat sheet
[Link] - Un Buen tutorial de matplotlib.
[Link] - Otra buena referencia
para matplotlib reference.
[Link]
[Link]
[Link] - Documentacion Seaborn otra libreria de graficas
estadisticas
[Link] - documentacion de marcadores
Lista de colormaps [Link]
Phd. Jose R. Zapata
[Link]
[Link]