Requisitos previos: Matplotlib , Seaborn
En este artículo, veremos datos de gráficos multidimensionales. Es un enfoque útil para dibujar varias instancias del mismo gráfico en diferentes subconjuntos de su conjunto de datos. Permite a un espectador extraer rápidamente una gran cantidad de información sobre un conjunto de datos complejo. En Seaborn, trazaremos múltiples gráficos en una sola ventana de dos maneras. Primero con la ayuda de la función Facetgrid() y otro implícito con la ayuda de matplotlib.
FacetGrid: FacetGrid es una forma general de trazar cuadrículas basadas en una función. Ayuda a visualizar la distribución de una variable, así como la relación entre múltiples variables. Su objeto utiliza el marco de datos como entrada y los nombres de las variables que dan forma a las dimensiones de columna, fila o color de la cuadrícula, la sintaxis se proporciona a continuación:
Sintaxis: seaborn.FacetGrid(datos, \*\*kwargs)
- datos: marco de datos ordenado donde cada columna es una variable y cada fila es una observación.
- \*\*kwargs: utiliza muchos argumentos como entrada, por ejemplo, fila, columna, tono, paleta, etc.
A continuación se muestra la implementación del método anterior:
Importe todas las bibliotecas de Python necesarias
Python3
import seaborn as sns import numpy as np import pandas as pd import matplotlib.pyplot as plt
Ejemplo 1: aquí, estamos inicializando la cuadrícula de esta manera, configura la figura y los ejes de matplotlib, pero no dibuja nada en ellos, estamos usando el conjunto de datos de ejercicio, que es un conjunto de datos bien conocido disponible como un conjunto de datos incorporado en seaborn.
El uso básico de la clase es muy similar a FacetGrid. Primero inicializa la cuadrícula, luego pasa la función de trazado a un método de mapa y se llamará en cada subparcela.
Python3
# loading of a dataframe from seaborn exercise = sns.load_dataset("exercise") # Form a facetgrid using columns sea = sns.FacetGrid(exercise, col = "time")
Producción:
Ejemplo 2: Esta función dibujará la figura y anotará los ejes. Para hacer un gráfico relacional, primero, inicializa la cuadrícula, luego pasa la función de trazado a un método de mapa y se llamará en cada subgráfico.
Python3
# Form a facetgrid using columns with a hue sea = sns.FacetGrid(exercise, col = "time", hue = "kind") # map the above form facetgrid with some attributes sea.map(sns.scatterplot, "pulse", "time", alpha = .8) # adding legend sea.add_legend()
Producción:
Ejemplo 3: hay varias opciones para controlar el aspecto de la cuadrícula que se pueden pasar al constructor de clases.
Python3
sea = sns.FacetGrid(exercise, row = "diet", col = "time", margin_titles = True) sea.map(sns.regplot, "id", "pulse", color = ".3", fit_reg = False, x_jitter = .1)
Producción:
Ejemplo 4: El tamaño de la figura se establece proporcionando la altura de cada faceta, junto con la relación de aspecto:
Python3
sea = sns.FacetGrid(exercise, col = "time", height = 4, aspect =.5) sea.map(sns.barplot, "diet", "pulse", order = ["no fat", "low fat"])
Producción:
Ejemplo 5: el orden predeterminado de las facetas se deriva de la información del DataFrame. Si la variable utilizada para definir las facetas es de tipo categórico, se utiliza el orden de las categorías. De lo contrario, las facetas estarán en el orden de aparición de los niveles de categoría. Sin embargo, es posible especificar un orden de cualquier dimensión de faceta con el parámetro *_order apropiado:
Python3
exercise_kind = exercise.kind.value_counts().index sea = sns.FacetGrid(exercise, row = "kind", row_order = exercise_kind, height = 1.7, aspect = 4) sea.map(sns.kdeplot, "id")
Producción:
Ejemplo 6: si tiene muchos niveles de una variable, puede trazarla a lo largo de las columnas pero «envolverlas» para que abarquen varias filas. Al hacer esto, no puede usar una variable de fila.
Python3
g = sns.PairGrid(exercise) g.map_diag(sns.histplot) g.map_offdiag(sns.scatterplot)
Producción:
Ejemplo 7:
En este ejemplo, veremos que también podemos trazar una cuadrícula de múltiples parcelas con la ayuda de la función pairplot().
Python3
# importing packages import seaborn import matplotlib.pyplot as plt # loading dataset using seaborn df = seaborn.load_dataset('tips') # pairplot with hue sex seaborn.pairplot(df, hue ='size') plt.show()
Producción
Método 2: implícito con la ayuda de matplotlib.
En esto aprenderemos a crear subparcelas usando n.
Importe todas las bibliotecas de Python necesarias
Python3
import seaborn as sns import numpy as np import pandas as pd import matplotlib.pyplot as plt # Setting seaborn as default style even # if use only matplotlib sns.set()
Ejemplo 1: aquí, estamos inicializando la cuadrícula sin argumentos, devuelve una figura y un solo eje, que podemos desempaquetar usando la siguiente sintaxis.
Python3
figure, axes = plt.subplots() figure.suptitle('Geeksforgeeks - one axes with no data')
Producción:
Ejemplo 2: En este ejemplo, creamos un gráfico con 1 fila y 2 columnas, todavía no se pasan datos, es decir, nrows y ncols. Si se da en este orden, no necesitamos escribir los nombres de los argumentos, solo sus valores.
- figsize establece la dimensión total de nuestra figura.
- sharex y sharey se utilizan para compartir uno o ambos ejes entre los gráficos.
Python3
figure, axes = plt.subplots(1, 2, sharex=True, figsize=(10,5)) figure.suptitle('Geeksforgeeks') axes[0].set_title('first chart with no data') axes[1].set_title('second chart with no data')
Producción:
Ejemplo 3: Si tienes muchos niveles
Python3
figure, axes = plt.subplots(3, 4, sharex=True, figsize=(16,8)) figure.suptitle('Geeksforgeeks - 3 x 4 axes with no data')
Producción
Ejemplo 4: aquí, estamos inicializando la figura y los ejes de matplotlib. En este ejemplo, estamos pasando los datos requeridos con la ayuda del conjunto de datos del ejercicio, que es un conjunto de datos bien conocido disponible como un conjunto de datos incorporado en Seaborn. Al usar este método, puede trazar cualquier número de la cuadrícula de múltiples parcelas y cualquier estilo de gráfico mediante filas y columnas implícitas con la ayuda de matplotlib en seaborn. Estamos usando sns.boxplot aquí, donde necesitamos establecer el argumento con el elemento correspondiente de la variable de ejes.
Python3
import seaborn as sns import numpy as np import pandas as pd import matplotlib.pyplot as plt fig, axes = plt.subplots(2, 3, figsize=(18, 10)) fig.suptitle('Geeksforgeeks - 2 x 3 axes Box plot with data') iris = sns.load_dataset("iris") sns.boxplot(ax=axes[0, 0], data=iris, x='species', y='petal_width') sns.boxplot(ax=axes[0, 1], data=iris, x='species', y='petal_length') sns.boxplot(ax=axes[0, 2], data=iris, x='species', y='sepal_width') sns.boxplot(ax=axes[1, 0], data=iris, x='species', y='sepal_length') sns.boxplot(ax=axes[1, 1], data=iris, x='species', y='petal_width') sns.boxplot(ax=axes[1, 2], data=iris, x='species', y='petal_length')
Producción:
Ejemplo 5: gridspec() es para una cuadrícula de filas y columnas con un espacio de ancho y alto especificado. El objeto plt.GridSpec no crea un gráfico por sí mismo, sino que es simplemente una interfaz conveniente que es reconocida por el comando subplot().
Python3
import matplotlib.pyplot as plt Grid_plot = plt.GridSpec(2, 3, wspace = 0.8, hspace = 0.6) plt.subplot(Grid_plot[0, 0]) plt.subplot(Grid_plot[0, 1:]) plt.subplot(Grid_plot[1, :2]) plt.subplot(Grid_plot[1, 2])
Producción:
Ejemplo 6: aquí crearemos una cuadrícula de subtrama de 3×4 usando subtramas(), donde todos los ejes en la misma fila comparten su escala del eje y, y todos los ejes en la misma columna comparten su escala del eje x.
Python3
import matplotlib.pyplot as plt figure, axes = plt.subplots(3, 4, figsize = (15, 10)) figure.suptitle('Geeksforgeeks - 2 x 3 axes grid plot using subplots')
Producción:
Publicación traducida automáticamente
Artículo escrito por kumar_satyam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA