Visualización con Matplotlib y Seaborn

Convierte tablas de pandas en gráficos claros con Python. Crea figuras y áreas de trazado en Matplotlib, dibuja gráficos de líneas, dispersión y barras, y representa datos directamente desde pandas después de agregarlos y reestructurarlos. Utiliza seaborn para crear gráficos estadísticos, histogramas, diagramas de caja y bigotes y mapas de calor, compara grupos con gráficos múltiples en pequeños paneles y facetas, y completa cada figura con etiquetas y anotaciones antes de exportarla para un informe o para la web.

IntermedioUnidad 7 de 8 del curso Curso de Análisis de datos con Python

Lo que aprenderás

  1. Crea una figura y sus áreas de trazado con la interfaz orientada a objetos de Matplotlib, dibuja en ellas gráficos de líneas, dispersión y barras, y controla títulos, etiquetas, marcas de graduación, límites, leyendas y estilos.
    • Configura una figura y sus áreas de trazado
      Comprende cómo se construye un gráfico de Matplotlib a partir de una figura, una o varias áreas de trazado y los elementos dibujados en ellas, y elige entre las formas pyplot y orientada a objetos de escribir código para gráficos.
    • Dibuja gráficos de líneas y diagramas de dispersión
      Dibuja valores a lo largo de un eje ordenado con ax.plot y observaciones individuales con ax.scatter, y controla el color, el estilo de línea, los marcadores, su tamaño y la transparencia.
    • Compara categorías mediante gráficos de barras
      Dibuja gráficos de barras verticales, horizontales, agrupadas y apiladas con ax.bar y ax.barh, y añade a las barras etiquetas con sus valores.
    • Añade etiquetas y configura la escala y el estilo de un gráfico
      Establece títulos, etiquetas de ejes, límites, marcas de graduación, formatos de sus etiquetas, escalas, leyendas y cuadrículas, y cambia el aspecto general de los gráficos con hojas de estilos y ajustes.
  2. Dibuja gráficos directamente desde Series y DataFrames con el método plot de pandas, y agrega, ordena y reestructura primero las tablas para que cada gráfico muestre los valores deseados.
    • Utiliza el método plot de pandas
      Crea gráficos de líneas, barras, histogramas, diagramas de caja y bigotes, gráficos de áreas, circulares y de dispersión a partir de una Series o un DataFrame, y personaliza las áreas de trazado de Matplotlib que devuelven.
    • Reestructura los datos antes de representarlos
      Agrega, cuenta, ordena y convierte una tabla a formato ancho o largo para que contenga exactamente los valores que debe mostrar un gráfico, en el formato que espera pandas o seaborn.
  3. Utiliza seaborn para asociar columnas de un DataFrame con posiciones, colores y estilos, muestra relaciones entre variables numéricas con resúmenes de tendencia y compara grupos mediante gráficos categóricos.
    • Asocia columnas con características visuales del gráfico en seaborn
      Indica las columnas del DataFrame para la posición, el color, el estilo y el tamaño, distingue las funciones a nivel de área de trazado de las funciones a nivel de figura, y establece temas y paletas de seaborn.
    • Muestra relaciones entre variables numéricas
      Dibuja diagramas de dispersión, gráficos de líneas agregadas con bandas de incertidumbre, rectas de regresión y matrices de gráficos por pares con seaborn, e interpreta qué muestran y qué no muestran las bandas y las líneas.
    • Compara grupos mediante gráficos categóricos
      Compara una variable numérica entre categorías con gráficos de barras, frecuencias absolutas, puntos, puntos por categorías y enjambre, y elige su estimador, barras de error, orden y orientación.
  4. Muestra cómo se distribuye una variable numérica con histogramas, curvas de densidad, diagramas de caja y bigotes y diagramas de violín, y representa una tabla de valores o correlaciones como un mapa de calor.
    • Muestra una distribución mediante histogramas y curvas de densidad
      Crea histogramas en Matplotlib, pandas y seaborn, elige intervalos de clase y escalas, y añade o compara curvas de densidad suavizadas.
    • Resume y compara distribuciones mediante diagramas de caja y bigotes
      Interpreta y dibuja diagramas de caja y bigotes a partir de los cuartiles y la regla de 1,5 × IQR, compara grupos con ellos y utiliza diagramas de violín y de puntos por categorías para mostrar lo que oculta una caja.
    • Representa una cuadrícula de valores como un mapa de calor
      Convierte una tabla dinámica o una matriz de correlaciones en un mapa de calor con seaborn o Matplotlib, y controla las anotaciones, los formatos numéricos, las escalas de colores y sus límites.
  5. Organiza gráficos múltiples en pequeños paneles con subgráficos de Matplotlib y facetas de seaborn, destaca lo importante con texto, flechas y líneas de referencia, y guarda las figuras en el formato y tamaño adecuados para informes y para la web.
    • Organiza varios gráficos en una figura
      Crea cuadrículas de áreas de trazado con plt.subplots, comparte escalas entre paneles, rellena los paneles en un bucle, ajusta el espaciado y los títulos, y crea paneles de distinto tamaño.
    • Representa datos por facetas con seaborn
      Divide un gráfico en paneles según una o dos variables categóricas con los argumentos col, row y col_wrap de las funciones a nivel de figura o con FacetGrid, y personaliza la cuadrícula resultante.
    • Añade anotaciones y líneas de referencia
      Coloca texto, flechas, líneas de referencia, intervalos sombreados y etiquetas de valores en un gráfico, en coordenadas de los datos o en coordenadas relativas al área de trazado.
    • Guarda figuras para informes y para la web
      Exporta figuras con savefig en formatos de mapa de bits o vectoriales, controla el tamaño, la resolución, los márgenes y el fondo, y guárdalas en el momento adecuado en scripts, cuadernos interactivos y bucles.

Guía de estudio de Visualización con Matplotlib y Seaborn

5 capítulos

1

Crea gráficos con figuras y áreas de trazado de Matplotlib

Un comando de representación necesita un lugar donde dibujar. Matplotlib hace explícito ese lugar: una figura contiene una o varias áreas de trazado, y cada área contiene las marcas y las etiquetas. Empieza con un área y luego utiliza los mismos objetos para añadir líneas, puntos, barras y ajustes útiles. Asignar un nombre a la figura y a cada área de trazado facilita modificar el gráfico adecuado cuando un cuaderno crece o una figura contiene varios paneles.

1.1 Configura una figura y sus áreas de trazado

Matplotlib es la biblioteca estándar de gráficos para Python, y tanto pandas como seaborn dibujan con ella. Por convención se importa como import matplotlib.pyplot as plt. En un cuaderno de Jupyter, un gráfico aparece debajo de la celda que lo dibuja; en un script, plt.show() muestra las figuras abiertas y, en un script normal, espera hasta que se cierren sus ventanas.

Una figura es el lienzo completo: la imagen que se muestra o se guarda. Un área de trazado es una zona de la figura donde se representan datos, con sus propios datos, título, etiquetas de los ejes y límites; una figura puede contener varias. Un eje es una de las rectas numéricas de un área de trazado, el eje x o el eje y, con sus marcas y etiquetas de graduación. Cada elemento visible, como una línea, un marcador, un texto o una barra, se llama objeto gráfico.

fig, ax = plt.subplots() crea una figura con un área de trazado y devuelve ambos objetos. figsize=(width, height) establece el tamaño de la figura en pulgadas. El valor predeterminado es 6,4 × 4,8 pulgadas a 100 puntos por pulgada, por lo que una figura predeterminada ocupa 640 × 480 píxeles en pantalla; plt.subplots(figsize=(8, 4)) crea una figura más ancha y baja.

Matplotlib ofrece dos estilos. En el estilo orientado a objetos se llaman métodos sobre objetos explícitos: ax.plot(...), ax.set_title(...). En el estilo pyplot, funciones como plt.plot(...) y plt.title(...) actúan sobre el área de trazado «actual», normalmente la última creada. Ambos dibujan los mismos gráficos; el estilo orientado a objetos resulta más claro en cuanto una figura tiene más de un área de trazado o el código de representación se incluye en una función, por lo que este curso lo utiliza.

Los dos estilos utilizan nombres distintos para los mismos ajustes: plt.title, plt.xlabel y plt.xlim corresponden a ax.set_title, ax.set_xlabel y ax.set_xlim. Un error frecuente es ax.title("Rainfall"): en un área de trazado, title es un atributo que contiene un objeto de texto, por lo que llamarlo produce TypeError: 'Text' object is not callable. Utiliza ax.set_title("Rainfall").

months = [1, 2, 3, 4, 5, 6]; temp_c = [3, 5, 9, 13, 17, 20], seguido de

fig, ax = plt.subplots(figsize=(8, 4))
ax.plot(months, temp_c)
ax.set_title("Mean monthly temperature")
ax.set_xlabel("Month")
ax.set_ylabel("Temperature (°C)")

.

Las llamadas de dibujo añaden elementos a un área de trazado; no sustituyen lo que ya hay. Una segunda llamada a ax.plot(...) sobre el mismo ax añade una segunda línea al mismo gráfico. Para obtener un gráfico separado, crea una figura nueva con otra llamada a plt.subplots() o dibuja en otra área de trazado de una figura con varios paneles.

pyplot mantiene abiertas todas las figuras que ha creado hasta que se cierran con plt.close(fig) o plt.close("all"). Las figuras abiertas consumen memoria y, cuando hay más de 20 abiertas, Matplotlib muestra una advertencia. El código que crea figuras en un bucle debe cerrar cada figura después de guardarla.

Puntos clave

  • Una figura es el lienzo; un área de trazado es una zona donde se representan datos.
  • Llama a los métodos del área de trazado que debe recibir el cambio.
  • Dibujar de nuevo en la misma área de trazado añade objetos gráficos.
  • Cierra las figuras guardadas dentro de los bucles.

1.2 Dibuja gráficos de líneas y diagramas de dispersión

ax.plot(x, y) dibuja marcadores o segmentos rectos que unen los puntos en el orden en que se proporcionan. Un gráfico de líneas es adecuado para una magnitud medida a lo largo de una variable ordenada, como el tiempo o la distancia. Con un argumento, ax.plot(y), los valores predeterminados de x son 0, 1, 2, ….

Como los puntos se unen en el orden proporcionado, los valores de x sin ordenar producen un zigzag que va y viene por el gráfico. Para x = [3, 1, 2], la línea va de x = 3 hacia atrás hasta x = 1 y luego hacia adelante hasta x = 2. Ordena primero los datos por x, por ejemplo con df.sort_values("x").

Argumentos de estilo: color (un nombre como "black" o "tab:orange", o un código hexadecimal como "#1f77b4"), linestyle ("-" continua, "--" discontinua, ":" punteada, "-." de raya y punto), linewidth, marker ("o" círculo, "s" cuadrado, "^" triángulo) y markersize. Una cadena de formato breve combina el marcador y el estilo de línea: ax.plot(x, y, "o--") dibuja círculos unidos por una línea discontinua. Sin un color, cada línea nueva toma el siguiente color del ciclo predeterminado, que comienza con "tab:blue" y "tab:orange".

Asigna un label a cada línea y llama a ax.legend() para mostrar una leyenda:

ax.plot(months, north, marker="o", label="North")
ax.plot(months, coast, linestyle="--", label="Coast")
ax.legend()

. Si ningún objeto gráfico tiene etiqueta, ax.legend() no dibuja nada y Matplotlib advierte que no encontró objetos gráficos con etiquetas.

ax.scatter(x, y) dibuja un marcador sin conectar por cada observación y es adecuado para representar la relación entre dos variables numéricas. Ejemplo: temperatura diaria [12, 15, 18, 21, 24, 27, 30, 22] °C y alquileres de bicicletas [180, 220, 260, 310, 330, 360, 340, 250]; ax.scatter(temp_c, rentals) muestra que los alquileres aumentan en general con la temperatura, y la correlación entre las dos listas es de aproximadamente 0,92.

En ax.scatter, s establece el área de cada marcador en puntos cuadrados; el valor predeterminado es 36, el área de un marcador de 6 puntos de ancho. Al duplicar s se duplica el área, por lo que el ancho del marcador solo aumenta por un factor de aproximadamente 1,4. s puede ser un número o un valor por punto, lo que permite representar una tercera variable mediante el tamaño de los marcadores.

c da color a los puntos: un color para todos o un número por punto que se asigna mediante un mapa de colores como cmap="viridis". Conserva el objeto devuelto y añade una barra de colores: sc = ax.scatter(temp_c, rentals, c=rain_mm, cmap="viridis"); fig.colorbar(sc, ax=ax, label="Rain (mm)").

Cuando se superponen muchos puntos, las zonas densas se convierten en manchas sólidas que ocultan cuántos puntos contienen. Reduce la opacidad con alpha=0.3, utiliza marcadores más pequeños o muestra la densidad, por ejemplo con un gráfico de agrupación en celdas hexagonales (df.plot.hexbin) o un histograma bidimensional.

ax.plot(x, y, "o"), con un marcador y sin línea, también dibuja puntos y es más rápido para un número muy grande de puntos porque todos los marcadores comparten tamaño y color. Utiliza ax.scatter cuando el tamaño o el color deban variar de un punto a otro.

Puntos clave

  • Las líneas conectan los puntos en el orden proporcionado.
  • El tamaño de los marcadores de dispersión es un área en puntos cuadrados.
  • Una correspondencia numérica de colores necesita una barra de colores.
  • Utiliza etiquetas y una leyenda para identificar las series.
  • La transparencia ayuda a distinguir observaciones superpuestas.

1.3 Compara categorías mediante gráficos de barras

ax.bar(categories, heights) dibuja una barra vertical por categoría; ax.barh(categories, widths) dibuja barras horizontales, que dejan espacio para nombres de categorías largos. Cuando las categorías son cadenas de texto, Matplotlib las sitúa a distancias iguales en el orden proporcionado y las utiliza como etiquetas de graduación. Cuando son números, las barras se sitúan en esas posiciones numéricas sobre un eje numérico ordinario.

De forma predeterminada, las barras parten de una línea de base de 0, por lo que su longitud muestra su valor. El argumento width se mide en unidades del eje x y su valor predeterminado es 0,8. Las categorías de texto se sitúan a una unidad de distancia, por lo que el valor predeterminado deja un espacio de 0,2 entre barras, y width=1 hace que las barras vecinas se toquen.

Se preguntó a 200 personas cómo se desplazan habitualmente: coche 84, autobús 52, bicicleta 38, a pie 26. ax.barh(["Car", "Bus", "Bike", "Walk"], [84, 52, 38, 26]) dibuja cuatro barras horizontales. Las proporciones son 42 %, 26 %, 19 % y 13 %, que suman 100 %.

ax.barh sitúa la primera categoría en la parte inferior del eje, porque el eje y crece hacia arriba. Para leer una lista ordenada desde arriba, como en el ejemplo de los desplazamientos, llama a ax.invert_yaxis() o invierte tanto las categorías como sus valores antes de representarlos, de modo que cada valor permanezca con su categoría.

Las barras agrupadas sitúan varias series una junto a otra en cada categoría. Utiliza posiciones numéricas y desplaza cada serie la mitad del ancho de una barra:

x = np.arange(3)
ax.bar(x - 0.2, north, width=0.4, label="North")
ax.bar(x + 0.2, coast, width=0.4, label="Coast")
ax.set_xticks(x, labels=["Jan", "Feb", "Mar"])
ax.legend()

. Las barras de North están en −0,2, 0,8 y 1,8, y las de Coast en 0,2, 1,2 y 2,2, centradas en cada marca de graduación.

Las barras apiladas dibujan una segunda serie encima de la primera con bottom=: ax.bar(days, car); ax.bar(days, bus, bottom=car). Si un día hay 40 viajes en coche y 25 en autobús, el segmento del autobús va de 40 a 65 y la altura total de la barra es 65.

bars = ax.bar(...) devuelve un contenedor de barras; ax.bar_label(bars) escribe cada valor al final de su barra. fmt controla el texto: fmt="%.1f" escribe 3,14 como «3.1», y fmt="{:.0f} km" lo escribe como «3 km».

Matplotlib dibuja las barras en el orden de los datos, no por tamaño. Para obtener un gráfico ordenado por valor, ordena primero los valores, por ejemplo con sorted() sobre pares o con sort_values() en pandas. El argumento yerr= añade barras de error de una longitud determinada a cada barra, y ax.errorbar(x, y, yerr=...) hace lo mismo para puntos.

Un gráfico de barras compara valores de categorías separadas, por lo que sus barras están separadas por espacios. En cambio, un histograma muestra cómo se distribuye una variable numérica en intervalos contiguos y sus barras se tocan. Representar las mediciones con una barra por fila de datos produce un gráfico de barras de valores sin resumir, no un histograma.

Puntos clave

  • Mantén cada categoría junto a su valor al ordenar.
  • Las barras agrupadas utilizan desplazamientos alrededor de las marcas de las categorías.
  • Las barras apiladas utilizan bases acumuladas.
  • Las etiquetas de las barras corresponden al contenedor devuelto.

1.4 Añade etiquetas y configura la escala y el estilo de un gráfico

Establece el texto con ax.set_title("..."), ax.set_xlabel("...") y ax.set_ylabel("..."), o con una sola llamada: ax.set(title="Monthly rainfall", xlabel="Month", ylabel="Rainfall (mm)"). Pon la unidad en la etiqueta del eje, por ejemplo «Precipitación (mm)» o «Distancia (km)», para que cada valor de las marcas de graduación tenga significado.

Matplotlib elige los límites de los ejes a partir de los datos y añade un pequeño margen. Establécelos tú con ax.set_xlim(1, 12) y ax.set_ylim(0, 120), o fija solo un extremo con ax.set_ylim(bottom=0). ax.set(xlim=(1, 12), ylim=(0, 120)) hace lo mismo en una sola llamada.

ax.set_xticks([1, 4, 7, 10]) elige las posiciones de las marcas de graduación, y ax.set_xticks([1, 2, 3], labels=["Jan", "Feb", "Mar"]) también sustituye sus etiquetas. Gira las etiquetas amontonadas con ax.tick_params(axis="x", labelrotation=45). Los formateadores de etiquetas de graduación cambian cómo se escriben los valores: ax.yaxis.set_major_formatter(PercentFormatter(xmax=1, decimals=0)), con PercentFormatter importado de matplotlib.ticker, etiqueta el valor 0,25 como «25%».

ax.set_yscale("log") establece una escala logarítmica en el eje y, donde distancias iguales representan razones iguales: el paso de 10 a 100 tiene la misma longitud que el paso de 100 a 1000. Es adecuada para valores que abarcan varios órdenes de magnitud, como las poblaciones de las ciudades. Un eje logarítmico no puede mostrar el cero ni valores negativos.

ax.legend() coloca la leyenda donde cubre menos puntos (loc="best", el valor predeterminado para la leyenda de un área de trazado). Elige una posición con loc="upper left", añade un encabezado con title="Station" y distribuye las entradas en columnas con ncols=2. ax.legend(bbox_to_anchor=(1.02, 1), loc="upper left") coloca la leyenda justo fuera del borde derecho del área de trazado.

ax.grid(True, alpha=0.3) añade líneas de cuadrícula tenues en las marcas de graduación; ax.grid(axis="y") dibuja solo las horizontales, lo que facilita la lectura de las alturas de las barras.

Las hojas de estilos cambian el aspecto predeterminado de todos los gráficos posteriores: plt.style.use("ggplot"). plt.style.available enumera los estilos instalados; los estilos similares a seaborn incluidos con Matplotlib se llaman, por ejemplo, "seaborn-v0_8-whitegrid". Para aplicar un estilo solo a un bloque de código, utiliza with plt.style.context("ggplot"):.

Los ajustes predeterminados individuales se encuentran en plt.rcParams, por ejemplo plt.rcParams["font.size"] = 12 o plt.rcParams["figure.figsize"] = (8, 4). Se aplican a las figuras creadas después, y plt.rcdefaults() restaura los valores predeterminados de Matplotlib.

fig, ax = plt.subplots(figsize=(8, 4))
ax.plot([1, 2, 3, 4], [62, 48, 55, 40], marker="o", label="North")
ax.set(title="Monthly rainfall, January to April", xlabel="Month", ylabel="Rainfall (mm)", ylim=(0, 70))
ax.set_xticks([1, 2, 3, 4], labels=["Jan", "Feb", "Mar", "Apr"])
ax.legend()
ax.grid(axis="y", alpha=0.3)

.

En una figura con varias áreas de trazado, las funciones de pyplot como plt.title o plt.xlabel solo modifican el área actual, normalmente la última creada, por lo que un título puede aparecer en el panel equivocado. Llamar a los métodos del área de trazado deseada, como axes[0].set_title(...), evita este problema.

Puntos clave

  • El formato de las marcas de graduación cambia las etiquetas sin cambiar los valores.
  • Las escalas logarítmicas muestran razones iguales como distancias iguales.
  • Los estilos y rcParams establecen valores predeterminados para gráficos posteriores.
2

Representa datos directamente desde pandas

Una tabla de pandas a menudo ya contiene las etiquetas y los valores que necesita un gráfico. Sus métodos de representación utilizan esas etiquetas para crear un gráfico de Matplotlib, que luego puedes completar con los mismos métodos que un gráfico creado manualmente. El trabajo importante suele ocurrir antes de dibujar: decidir qué representa una fila, calcular el resumen adecuado y organizar la tabla para que los grupos, las series y su orden correspondan a la pregunta.

2.1 Utiliza el método plot de pandas

Crea la tabla de precipitaciones en formato ancho con una columna por estación:

import pandas as pd
wide = pd.DataFrame({
    "North": [62, 48, 55, 40],
    "Coast": [110, 95, 80, 60],
    "Valley": [20, 15, 30, 45]
}, index=pd.Index(["Jan", "Feb", "Mar", "Apr"], name="month"))

Todas las Series y todos los DataFrames de pandas tienen un método .plot que dibuja con Matplotlib y devuelve el área de trazado de Matplotlib en la que dibujó. df.plot(kind="bar") y df.plot.bar() son la misma llamada. Los tipos son "line" (el predeterminado), "bar", "barh", "hist", "box", "kde" o "density", "area", "pie", "scatter" y "hexbin".

De forma predeterminada, el índice pasa a ser el eje x y cada columna numérica se convierte en una línea, con una leyenda creada a partir de los nombres de las columnas. Una Series representa sus valores frente a su índice. Para elegir columnas, pasa x="month" y y="rain_mm", o una lista como y=["North", "Coast"].

Una tabla wide con el índice Jan, Feb, Mar, Apr y las columnas North [62, 48, 55, 40], Coast [110, 95, 80, 60] y Valley [20, 15, 30, 45], todos en milímetros de precipitación. ax = wide.plot(marker="o", figsize=(8, 4), title="Monthly rainfall"); ax.set_ylabel("Rainfall (mm)") dibuja tres líneas etiquetadas en un área de trazado y luego establece la etiqueta del eje y con un método ordinario de Matplotlib.

Argumentos habituales de .plot: title, xlabel, ylabel, xlim, ylim, figsize, color, legend=False, rot (rotación de las etiquetas de graduación en grados), grid=True y logy=True. ax= dibuja en un área de trazado existente, por ejemplo un panel de plt.subplots(1, 2), en lugar de hacerlo en una figura nueva.

subplots=True dibuja cada columna en su propia área de trazado y devuelve un arreglo de NumPy de áreas de trazado en lugar de una sola; layout=(2, 2) las organiza en una cuadrícula y sharey=True les asigna una escala y común. Para la tabla de tres estaciones, wide.plot(subplots=True, layout=(1, 3), sharey=True) produce un panel por estación.

Los diagramas de dispersión y los gráficos de celdas hexagonales solo existen para DataFrames y necesitan tanto x como y: days.plot.scatter(x="temp_c", y="rentals", c="rain_mm", colormap="viridis") colorea los puntos según la precipitación. Una Series no tiene gráfico de dispersión, por lo que s.plot.scatter() produce un error. df.plot.hist(bins=5) y df.plot.box() producen un histograma y un diagrama de caja y bigotes de cada columna numérica.

s.plot.pie() dibuja un sector por valor, cuyo tamaño depende de su proporción del total. Como los gráficos circulares necesitan una Series de partes no negativas de un mismo total, una columna de recuentos como s.value_counts() es una entrada habitual.

Los gráficos de barras de pandas tratan el índice como categorías y colocan las barras en las posiciones 0, 1, 2, …, sean cuales sean los valores del índice. Los gráficos de líneas utilizan los valores reales del índice cuando son números o fechas. Por tanto, una línea y unas barras de pandas dibujadas en la misma área de trazado solo se alinean cuando los valores x de la línea coinciden con las posiciones de las barras, como ocurre con un índice predeterminado 0, 1, 2, …; para años como 2020 a 2023, la línea queda muy a la derecha de las barras. Representa ambos con las mismas posiciones al combinarlos.

Con un DatetimeIndex, .plot() coloca las fechas en el eje x y las etiqueta automáticamente. Los datos diarios suelen resultar más claros después de un remuestreo temporal, por ejemplo a medias mensuales con s.resample("MS").mean().plot().

.plot solo representa columnas numéricas. Si los números se leyeron como texto, por ejemplo porque una columna contiene «12 mm», la columna se omite y, cuando no quedan datos numéricos, pandas produce TypeError: no numeric data to plot. Convierte primero la columna, por ejemplo con pd.to_numeric(...).

Puntos clave

  • Pandas representa datos numéricos y utiliza el índice de forma predeterminada.
  • Pasa un área de trazado con ax= para reutilizar un panel.
  • Los subgráficos separados devuelven un arreglo de áreas de trazado.
  • Las barras y las líneas numéricas de pandas utilizan reglas de posición diferentes.

2.2 Reestructura los datos antes de representarlos

Un gráfico representa los valores que hay en la tabla, así que resúmelos primero. Ejemplo: una tabla en formato largo rain con 12 filas, una por estación y mes, y las columnas month, station y rain_mm. rain.groupby("station")["rain_mm"].mean() da una media por estación: Coast 86,25 mm, North 51,25 mm y Valley 27,5 mm. Al añadir .plot.bar() se dibujan tres barras.

Representar por error las filas sin resumir muestra mediciones individuales en lugar de las medias solicitadas: rain.plot.bar(x="station", y="rain_mm") dibuja 12 barras con nombres de estaciones repetidos en lugar de tres medias.

Ordena antes de representar para obtener barras ordenadas por valor: means.sort_values(ascending=False).plot.bar() coloca la media mayor a la izquierda. Para un gráfico horizontal, means.sort_values().plot.barh() coloca la mayor arriba, porque el primer valor se dibuja abajo.

s.value_counts() cuenta cuántas veces aparece cada categoría y muestra los recuentos de mayor a menor frecuencia. Para los medios de transporte «autobús», «coche», «autobús», «bicicleta», «autobús», «coche» da autobús 3, coche 2, bicicleta 1, listo para .plot.bar(). Utiliza .sort_index() o .reindex([...]) cuando las categorías tengan un orden natural, como los días de la semana.

Un DataFrame en formato ancho, con una columna por serie, produce en pandas una línea o un color de barra por columna. Convierte una tabla en formato largo con rain.pivot(index="month", columns="station", values="rain_mm"). Cuando algún par de índice y columna aparece más de una vez, pivot produce un error; utiliza en su lugar pivot_table(..., aggfunc="mean") o groupby(["month", "station"])["rain_mm"].mean().unstack().

pivot y pivot_table ordenan el nuevo índice, por lo que los meses expresados como cadenas aparecen en orden alfabético, Apr, Feb, Jan, Mar, y un gráfico de líneas recorre entonces los meses en un orden incorrecto. Restablece el orden real con wide.reindex(["Jan", "Feb", "Mar", "Apr"]), o almacena el mes como una variable categórica ordenada o como un número de mes antes de convertir a formato ancho.

En una tabla en formato ancho, wide.plot.bar() dibuja barras agrupadas, un grupo por etiqueta del índice y un color por columna, mientras que wide.plot.bar(stacked=True) apila las columnas. La transpuesta wide.T.plot.bar() intercambia los papeles: un grupo por estación y un color por mes.

Para obtener las proporciones dentro de cada grupo, normaliza una tabla de contingencia: pd.crosstab(trips["region"], trips["mode"], normalize="index") divide cada recuento entre el total de su fila, de modo que cada fila suma 1. Si la región N tiene dos viajes en coche y uno en autobús, su fila contiene coche 0,67 y autobús 0,33 (redondeados). .plot.bar(stacked=True) dibuja entonces barras de igual altura total que muestran la composición de cada región.

seaborn funciona mejor con datos en formato largo y ordenado: una fila por observación y una columna por variable. wide.reset_index().melt(id_vars="month", var_name="station", value_name="rain_mm") convierte la tabla ancha de 4 × 3 de nuevo en 12 filas con tres columnas, de modo que station puede utilizarse para el color o las facetas.

Puntos clave

  • Agrega las filas antes de representar el resumen solicitado.
  • Un par duplicado al convertir a formato ancho requiere una regla de agregación.
  • Los datos en formato ancho se adaptan a series en columnas; los datos en formato largo, a correspondencias semánticas.
  • Restablece un orden significativo de las categorías después de reestructurar.
  • Normaliza cada fila para comparar las proporciones de los grupos.
3

Crea gráficos estadísticos con seaborn

Los gráficos estadísticos relacionan columnas de una tabla con características visuales y a menudo calculan un resumen al dibujarse. seaborn se ocupa de ambas tareas mediante argumentos con nombre. Una llamada breve puede mostrar grupos en distintos colores, promediar observaciones repetidas o dividir una tabla en paneles. Examina estos valores predeterminados con atención: un gráfico de observaciones individuales y otro de medias de grupos pueden partir de las mismas filas, pero responder a preguntas distintas.

3.1 Asocia columnas con características visuales del gráfico en seaborn

seaborn es una biblioteca de gráficos construida sobre Matplotlib que trabaja directamente con DataFrames de pandas y calcula por sí misma resúmenes estadísticos habituales. Por convención se importa como import seaborn as sns. Una llamada típica indica la tabla y sus columnas: sns.scatterplot(data=days, x="temp_c", y="rentals").

Además de x e y, las columnas pueden asociarse con otras características mediante correspondencias semánticas: hue establece el color, style el marcador o el patrón de líneas discontinuas, y size el tamaño del marcador o el ancho de la línea. seaborn elige los colores y crea la leyenda por sí mismo. Una columna categórica para hue recibe colores distintos; una numérica recibe un degradado.

Cada correspondencia necesita una columna en formato largo. Con la tabla de precipitaciones en formato largo, sns.lineplot(data=rain, x="month", y="rain_mm", hue="station", marker="o") dibuja una línea de color por estación con una leyenda. Si hue indica una columna que no está en la tabla, seaborn produce un ValueError que señala que no pudo interpretar el valor.

Cuando x contiene cadenas, seaborn coloca las categorías en el orden en que aparecen por primera vez en los datos, de modo que los meses almacenados como «Jan», «Feb», «Mar» en ese orden de filas conservan el orden del calendario. Las funciones categóricas, como barplot, boxplot y countplot, aceptan order=["Mon", "Tue", "Wed"] para establecer el orden de las categorías, y hue_order establece el orden de los grupos codificados por color en todas las funciones que tienen hue. lineplot no tiene argumento order: para fijar ahí el orden de los nombres de los meses, convierte la columna x en una variable categórica ordenada, por ejemplo pd.Categorical(rain["month"], categories=["Jan", "Feb", "Mar", "Apr"], ordered=True).

Las funciones a nivel de área de trazado, como scatterplot, lineplot, histplot, boxplot, barplot y heatmap, dibujan en un área de trazado de Matplotlib, aceptan ax= para elegirla y la devuelven. Las funciones a nivel de figura, relplot, displot, catplot y lmplot, crean su propia figura, pueden dividirla en paneles con col y row, y devuelven un objeto FacetGrid de seaborn.

Las funciones a nivel de figura establecen el tamaño por panel: height es la altura de cada panel en pulgadas y aspect su relación entre ancho y alto, por lo que cada panel tiene height × aspect pulgadas de ancho; los valores predeterminados son 5 y 1. Como crean su propia figura, no pueden dibujar en un área de trazado existente: relplot, displot y catplot muestran una advertencia e ignoran ax=, y lmplot lo rechaza con un TypeError. Sitúan la leyenda fuera de los paneles.

sns.set_theme() cambia todos los gráficos posteriores, incluidos los de Matplotlib sin seaborn, al aspecto de seaborn: el estilo «darkgrid», el contexto «notebook» y la paleta predeterminada de seaborn. style puede ser «darkgrid», «whitegrid», «dark», «white» o «ticks»; context puede ser «paper», «notebook», «talk» o «poster» y ajusta la escala de fuentes y líneas, por ejemplo de una fuente base de 12 puntos para «notebook» a 18 puntos para «talk».

palette elige los colores de hue, por ejemplo palette="colorblind", "Set2" o "viridis". En seaborn 0.13, pasar palette sin hue está en desuso; para colorear las barras por categoría, asigna a hue la misma columna que a x y añade legend=False: sns.barplot(data=rain, x="station", y="rain_mm", hue="station", legend=False).

El resultado se puede completar con Matplotlib:

ax = sns.scatterplot(...)
ax.set(xlabel="Temperature (°C)", ylabel="Rentals per day", title="Rentals and temperature")

. Para un resultado a nivel de figura, utiliza los métodos de la cuadrícula, como g.set_axis_labels("Temperature (°C)", "Rentals per day"), y g.figure.suptitle("...") para un título general.

Puntos clave

  • Las correspondencias semánticas relacionan columnas con características visuales.
  • Las funciones a nivel de área de trazado aceptan un área existente.
  • Las funciones a nivel de figura crean sus propios paneles y establecen su tamaño.
  • Los temas afectan a los gráficos posteriores de ambas bibliotecas.

3.2 Muestra relaciones entre variables numéricas

sns.scatterplot(data=days, x="temp_c", y="rentals", hue="weekday", size="rain_mm") dibuja un punto por fila, con color y tamaño determinados por otras columnas. Combinar hue y style con la misma columna da a cada grupo un color y un marcador distintos, que siguen siendo distinguibles en escala de grises.

sns.lineplot agrega de forma predeterminada: cuando varias filas comparten un valor de x, dibuja la línea pasando por la media de sus valores de y y sombrea una banda para el intervalo de confianza del 95 % de esa media, calculado mediante remuestreo bootstrap. Ejemplo resuelto: para x = 1 los valores de y son 10, 12 y 14; para x = 2 son 20, 21 y 25; la línea pasa por 12 y 22.

La banda predeterminada muestra la incertidumbre de cada media, no el rango de los datos. errorbar="sd" sombrea en su lugar una desviación estándar por encima y por debajo de la media, errorbar=None elimina la banda y estimator=None (junto con units=) dibuja cada serie individual sin promediar. Con una fila por valor de x no hay nada que promediar ni se muestra una banda.

sns.regplot(data=days, x="temp_c", y="rentals") dibuja un diagrama de dispersión con una recta de mínimos cuadrados y una banda de confianza sombreada del 95 % para esa recta; order=2 ajusta en su lugar una curva cuadrática. sns.lmplot hace lo mismo como función a nivel de figura, por lo que también puede dividir los datos por hue, col o row.

Una línea de ajuste resume los datos con el modelo que elegiste. Se puede dibujar una recta sobre datos curvos, así que observa los puntos alrededor de la línea antes de confiar en ella. Una tendencia fuerte muestra que las variables están asociadas en estos datos, sin establecer una causa.

sns.pairplot(df) dibuja una cuadrícula con un diagrama de dispersión para cada par de columnas numéricas y la distribución de cada columna en la diagonal: histogramas de forma predeterminada y curvas de densidad cuando se establece hue. Cuatro columnas numéricas producen una cuadrícula de 4 × 4 con 16 paneles. corner=True conserva solo el triángulo inferior y vars=[...] limita las columnas. Devuelve un PairGrid.

sns.jointplot(data=days, x="temp_c", y="rentals") dibuja un diagrama de dispersión con el histograma de cada variable en sus bordes; kind="hex" sustituye los puntos por celdas hexagonales, lo que ayuda con conjuntos de datos grandes.

sns.relplot(..., kind="scatter") y sns.relplot(..., kind="line") son las versiones a nivel de figura de scatterplot y lineplot; el tipo predeterminado es el de dispersión. Utilízalas cuando la misma relación deba mostrarse en paneles separados para cada grupo.

sns.regplot(data=days, x="temp_c", y="rentals") muestra que los alquileres aumentan de 180 a 12 °C hasta aproximadamente 350 en los días más cálidos, con una correlación de aproximadamente 0,92. El día de 30 °C tiene menos alquileres (340) que el de 27 °C (360), por lo que los puntos se nivelan en la parte superior; se puede comparar un ajuste cuadrático (order=2) con la recta.

Puntos clave

  • Las líneas predeterminadas de seaborn promedian las observaciones repetidas.
  • Una banda de confianza describe la incertidumbre de una estimación.
  • Utiliza units y ningún estimador para conservar las trayectorias individuales.
  • Inspecciona tanto los puntos como las líneas de ajuste.
  • Las matrices de gráficos por pares comparan variables y sus distribuciones.

3.3 Compara grupos mediante gráficos categóricos

Las funciones categóricas de seaborn sitúan cada categoría en las posiciones 0, 1, 2, … del eje categórico. Incluso los números se tratan como etiquetas: los años 2020, 2021 y 2023 se dibujan a distancias iguales, sin dejar un espacio para 2022. native_scale=True conserva un eje numérico con las distancias reales.

sns.barplot(data=rain, x="station", y="rain_mm") dibuja una barra por estación cuya altura es la media de sus filas, con una barra de error para el intervalo de confianza del 95 % de esa media. Con la tabla de precipitaciones, las barras son Coast 86,25, North 51,25 y Valley 27,5 mm. estimator="median" o estimator="sum" cambia el resumen; errorbar="sd" o errorbar=None cambia o elimina las barras de error.

sns.countplot(data=trips, x="mode") cuenta las filas de cada categoría y no necesita una columna numérica; sns.barplot resume una columna numérica. Utiliza countplot para «cuántos» y barplot para «cuánto en promedio».

sns.pointplot muestra la media de cada grupo como un punto con una barra de error y une con una línea los puntos de cada grupo definido por hue. Facilita la comparación de cambios entre categorías, por ejemplo la precipitación media de tres estaciones en cada uno de cuatro meses.

Una barra de medias oculta la dispersión y el número de observaciones: una media de 3 filas parece tan sólida como una media de 300. A menudo es mejor mostrar los datos: sns.stripplot dibuja cada observación como un punto con un pequeño desplazamiento aleatorio, y sns.swarmplot organiza los puntos para que no se superpongan. Se puede dibujar un diagrama de puntos por categorías sobre un diagrama de caja y bigotes o un gráfico de barras en la misma área de trazado.

Con hue, los diagramas de barras, caja y violín sitúan de forma predeterminada los grupos uno junto a otro dentro de cada categoría mediante un desplazamiento lateral. Los diagramas de puntos, puntos por categorías y enjambre dibujan los grupos en la misma posición salvo que se establezca dodge=True, por lo que sus puntos pueden superponerse. Establece el orden de las categorías con order=[...] y el de los grupos con hue_order=[...].

La orientación depende de los datos: coloca las categorías en el eje y y los números en el eje x, sns.barplot(data=rain, x="rain_mm", y="station"), para obtener barras horizontales con etiquetas largas legibles. orient="y" (o "h") lo indica de forma explícita.

sns.catplot es la función a nivel de figura para todos los gráficos categóricos. Su kind puede ser «strip» (el predeterminado), «swarm», «box», «violin», «boxen», «point», «bar» o «count», y col o row divide el gráfico en paneles.

Puntos clave

  • Los gráficos de frecuencias absolutas cuentan filas; los de barras resumen valores numéricos.
  • Los diagramas de puntos por categorías y de enjambre muestran las observaciones.
  • El desplazamiento lateral separa los grupos codificados por color dentro de una categoría.
4

Visualiza distribuciones y cuadrículas de valores

Un gráfico de distribución describe un conjunto de mediciones, mientras que un mapa de calor describe una tabla mediante colores. Estos gráficos condensan muchos valores, por lo que sus ajustes afectan a lo que puedes interpretar. Los límites de clase determinan qué observaciones se cuentan juntas; los cuartiles y los bigotes resumen distintas partes de una muestra; una escala de colores asigna tonos a los números. Revisa esos cálculos antes de interpretar la imagen terminada.

4.1 Muestra una distribución mediante histogramas y curvas de densidad

Un histograma divide el rango de una variable numérica en intervalos contiguos llamados intervalos de clase y dibuja sobre cada uno una barra cuya altura es el número de observaciones que contiene. Muestra la forma de una distribución: dónde se centran los valores, cuánto se dispersan, si son asimétricos y si hay huecos o valores inusuales.

counts, edges, patches = ax.hist(data, bins=5) dibuja el histograma y devuelve el recuento de cada intervalo de clase y sus límites. Si se proporciona un entero, los intervalos tienen la misma amplitud desde el mínimo hasta el máximo; el valor predeterminado es 10 intervalos. Cada intervalo incluye su límite izquierdo y excluye el derecho, salvo el último, que incluye ambos.

20 tiempos de desplazamiento en minutos: 12, 15, 18, 20, 22, 22, 25, 27, 28, 30, 31, 33, 35, 38, 40, 42, 45, 50, 55, 62. Con bins=5 los límites son 12, 22, 32, 42, 52 y 62, y los recuentos son 4, 7, 4, 3 y 2. El valor 22 cae en el segundo intervalo porque los intervalos excluyen su límite derecho, y 62 se cuenta en el último porque este lo incluye.

El número y la posición de los intervalos cambian la imagen. Los mismos 20 tiempos con límites [10, 20, 30, 40, 50, 60, 70] dan los recuentos 3, 6, 5, 3, 2 y 1. Demasiados pocos intervalos ocultan la forma; demasiados producen un gráfico irregular con muchos intervalos casi vacíos. Prueba varios ajustes y prefiere límites redondos que los lectores puedan interpretar, como pasos de 10 minutos.

density=True en Matplotlib, o stat="density" en seaborn, escala las barras para que su área total sea 1: cada altura es recuento ÷ (n × amplitud del intervalo). Para los datos de desplazamientos con cinco intervalos de 10 minutos, la altura de la segunda barra es 7 ÷ (20 × 10) = 0,035 por minuto. Una altura de densidad no es una probabilidad; altura × amplitud del intervalo es la proporción de observaciones del intervalo.

sns.histplot(data=commutes, x="minutes") dibuja un histograma con seaborn; bins y binwidth controlan los intervalos. stat elige la altura: «count» (predeterminado), «probability» o «proportion» (las alturas suman 1), «percent» (las alturas suman 100) y «density» (área 1). Para los cinco intervalos de desplazamiento, «probability» da 0,2, 0,35, 0,2, 0,15 y 0,1.

Para comparar grupos, sns.histplot(data=commutes, x="minutes", hue="mode") superpone un histograma por grupo; multiple="stack" los apila, multiple="dodge" los coloca uno junto a otro y element="step" dibuja contornos cuya superposición se lee con mayor facilidad. Los grupos de distintos tamaños se comparan de forma equitativa con stat="density", common_norm=False, que escala cada grupo a un área de 1.

Una estimación de densidad por núcleos es una curva suave que estima la forma de la distribución; el área bajo ella es 1. sns.kdeplot(data=commutes, x="minutes") la dibuja y sns.histplot(..., kde=True) la añade a un histograma. Un bw_adjust superior a 1 hace que la curva sea más suave; inferior a 1, más detallada.

Una curva KDE se extiende más allá de los valores mínimo y máximo, por lo que puede mostrar densidad por debajo de 0 minutos para tiempos que no pueden ser negativos. cut=0 detiene la curva en los límites de los datos. En muestras pequeñas, la curva puede sugerir una forma que los datos no respaldan.

En pandas, commutes["minutes"].plot.hist(bins=5, edgecolor="white") dibuja un histograma (10 intervalos de forma predeterminada), y df.hist() dibuja un histograma por columna numérica en una cuadrícula. En seaborn, sns.displot es la versión a nivel de figura: kind="hist" (predeterminado), kind="kde" o kind="ecdf", donde una ECDF muestra para cada valor la proporción de observaciones menores o iguales a él.

Puntos clave

  • Los límites del histograma determinan a qué intervalo pertenece cada observación.
  • La densidad utiliza el área para representar una proporción.
  • Una KDE suaviza una distribución y depende del ancho de banda.
  • Normaliza los grupos por separado para comparar sus formas.

4.2 Resume y compara distribuciones mediante diagramas de caja y bigotes

Un diagrama de caja y bigotes resume una distribución: la caja va del primer cuartil (Q1) al tercer cuartil (Q3), una línea en su interior marca la mediana, los bigotes se extienden hacia los valores típicos más pequeño y más grande, y los puntos más allá de los bigotes se dibujan individualmente como posibles valores atípicos. El rango intercuartílico IQR = Q3 − Q1 es la longitud de la caja y abarca la mitad central de los datos.

De forma predeterminada, Matplotlib, pandas y seaborn utilizan whis=1.5: los límites de detección de valores atípicos son Q1 − 1,5 × IQR y Q3 + 1,5 × IQR. Cada bigote termina en el valor observado más extremo dentro de su límite, no en el propio límite, y cada valor fuera de los límites se dibuja como un punto separado.

11 tiempos de entrega en minutos: 14, 16, 17, 18, 19, 20, 21, 22, 24, 25, 41. Matplotlib calcula Q1 = 17,5, mediana = 20 y Q3 = 23, por lo que IQR = 5,5. Los límites son 17,5 − 8,25 = 9,25 y 23 + 8,25 = 31,25. El bigote inferior termina en 14, el superior en 25, y 41 se dibuja como un punto atípico.

Los cuartiles dependen del método. Las bibliotecas de gráficos utilizan interpolación lineal entre los valores ordenados (el método predeterminado de NumPy y pandas), que da 17,5 y 23 en el ejemplo anterior. El método manual de tomar las medianas de las mitades inferior y superior sin la mediana general da Q1 = 17 y Q3 = 24 para los mismos datos. Ambos son válidos; las pequeñas diferencias entre un cálculo manual y un gráfico se deben a esto.

Dibuja el resumen con la biblioteca que estés utilizando: ax.boxplot([north, coast], tick_labels=["North", "Coast"]) en Matplotlib (el argumento se llamaba labels antes de la versión 3.9); rain.boxplot(column="rain_mm", by="station") en pandas, que también añade el título general «Boxplot grouped by station»; sns.boxplot(data=rain, x="station", y="rain_mm") en seaborn, con hue para una segunda agrupación. whis=(0, 100) extiende los bigotes hasta el mínimo y el máximo, y showfliers=False oculta los puntos atípicos.

Los diagramas de caja y bigotes colocados uno junto a otro permiten comparar grupos de un vistazo: compara las medianas, las longitudes de las cajas (la dispersión de la mitad central) y la superposición de las cajas. Una mediana cercana a un extremo de la caja, o un bigote mucho más largo que el otro, indica una distribución asimétrica.

Una caja muestra solo cinco números y los valores atípicos. No muestra el número de observaciones, y distribuciones de formas muy distintas pueden tener la misma caja: una distribución con dos picos separados y otra con un solo pico pueden compartir Q1, la mediana y Q3. Superponer los puntos, sns.stripplot(data=rain, x="station", y="rain_mm", color="black", alpha=0.5), o utilizar un diagrama de violín permite verlo.

sns.violinplot(data=rain, x="station", y="rain_mm") dibuja una curva de densidad reflejada para cada grupo con un pequeño diagrama de caja y bigotes dentro (inner="box", el valor predeterminado); inner="quart" marca en su lugar los cuartiles con líneas. Con un hue de dos niveles, split=True coloca un grupo a cada lado del violín. Al igual que una KDE, el violín puede extenderse más allá de los datos; cut=0 lo detiene en el mínimo y el máximo observados.

Un punto señalado por la regla de 1,5 × IQR es inusual con respecto al resto de los datos, una razón para investigar el valor. Compruébalo: puede ser un error de entrada de datos o un valor real e importante, como una entrega retrasada por el cierre de una carretera. Eliminar puntos solo porque el gráfico los señala distorsiona el análisis.

Puntos clave

  • La longitud de la caja es el IQR.
  • Los bigotes terminan en observaciones situadas dentro de los límites.
  • Los métodos de cálculo de cuartiles pueden diferir.
  • Los puntos atípicos ocultos permanecen en los datos originales.
  • Los puntos y los violines muestran información que una caja oculta.

4.3 Representa una cuadrícula de valores como un mapa de calor

Un mapa de calor muestra una tabla de números como una cuadrícula de celdas coloreadas: las filas y las columnas son dos categorías (o variables agrupadas en intervalos), y el color de cada celda representa su valor. Es adecuado para observar patrones en tablas de doble entrada, como visitantes por día y franja horaria, y en matrices de correlaciones.

sns.heatmap(table) toma una tabla en formato ancho, utiliza su índice como etiquetas de fila y sus columnas como etiquetas de columna, y añade una barra de colores como referencia. La tabla suele proceder de pivot_table: visits.pivot_table(index="day", columns="slot", values="visitors", aggfunc="mean").

Un museo cuenta los visitantes por cada medio día. Sábado por la mañana 120 y 140, sábado por la tarde 200; domingo por la mañana 90, domingo por la tarde 160; lunes por la mañana 40, lunes por la tarde 70 y 90. La tabla dinámica de medias contiene Mon 40 y 80, Sat 130 y 200, Sun 90 y 160 (mañana y tarde). sns.heatmap(pt, annot=True, fmt=".0f", cmap="Blues") muestra la celda con más visitantes, el sábado por la tarde, como la más oscura. La conversión a formato ancho ordena los días alfabéticamente (Mon, Sat, Sun); pt.reindex(["Sat", "Sun", "Mon"]) restablecería el orden elegido.

annot=True escribe cada valor en su celda y fmt establece el formato numérico. El valor predeterminado ".2g" conserva dos cifras significativas, por lo que 43,25 se muestra como «43» y 1234 como «1.2e+03». Utiliza fmt=".0f" para números enteros o fmt=".2f" para dos decimales; fmt="d" solo funciona con datos enteros y produce un ValueError con números de coma flotante.

Un mapa de calor de correlaciones parte de corr = df.corr(numeric_only=True), una tabla cuadrada y simétrica cuyos coeficientes definidos van de −1 a 1. Las columnas numéricas no constantes tienen 1 en la diagonal; las columnas constantes tienen correlaciones no definidas. En pandas 2 y versiones posteriores, el valor predeterminado de numeric_only es False, por lo que df.corr() produce un error cuando la tabla tiene una columna de texto. Dibújalo con sns.heatmap(corr, annot=True, fmt=".2f", cmap="vlag", vmin=-1, vmax=1, center=0).

Ocho días con temperatura (°C), alquileres de bicicletas, precipitación (mm) y viento (km/h). La matriz de correlaciones da temperatura y alquileres 0,92, alquileres y precipitación −0,82, precipitación y viento 0,75, y temperatura y viento −0,38. Con el mapa de colores «vlag», el par con una correlación positiva fuerte aparece en rojo intenso, el par con una correlación negativa fuerte en azul intenso y el par débil de temperatura y viento en un tono pálido cercano al centro blanco.

Sin vmin y vmax, los colores se extienden desde el valor mínimo hasta el máximo de esa tabla, por lo que el mismo color puede representar valores distintos en dos mapas de calor. Fija los límites para comparar mapas de calor y utiliza vmin=-1, vmax=1 para correlaciones. Un mapa de colores secuencial como «rocket» (el predeterminado de seaborn), «viridis» o «Blues» es adecuado para valores que van de bajos a altos; uno divergente como «vlag», «coolwarm» o «RdBu_r», con center en el punto medio significativo, es adecuado para valores por encima y por debajo de una referencia como 0. Si se establece center y no se indica cmap, seaborn utiliza el mapa divergente «icefire».

Opciones útiles: linewidths=0.5 dibuja líneas finas entre las celdas, square=True hace que las celdas sean cuadradas, cbar_kws={"label": "Visitors"} etiqueta la barra de colores y los valores faltantes (NaN) se dejan en blanco. mask=np.triu(np.ones_like(corr, dtype=bool)) oculta el triángulo superior y la diagonal de una matriz de correlaciones, que repiten el triángulo inferior.

En Matplotlib, im = ax.imshow(values, cmap="viridis"); fig.colorbar(im, ax=ax) dibuja un mapa de calor de un arreglo de 2 dimensiones, con la fila 0 arriba; «viridis» es el mapa de colores predeterminado de Matplotlib. imshow etiqueta los ejes con números de fila y columna, así que establece tú los nombres: ax.set_xticks(range(len(cols)), labels=cols). ax.pcolormesh es una alternativa cuando las celdas tienen tamaños distintos.

Un coeficiente de correlación mide únicamente la intensidad de una asociación lineal. Una correlación cercana a 0 no descarta una relación curva fuerte, y un solo valor atípico puede aumentar o disminuir mucho un coeficiente. Comprueba los diagramas de dispersión correspondientes, por ejemplo con una matriz de gráficos por pares, antes de interpretar un mapa de calor de correlaciones.

Puntos clave

  • Los colores de un mapa de calor representan los valores de la tabla.
  • Fija los límites de colores para comparar distintos gráficos.
  • Las escalas de correlación van de −1 a 1.
  • Comprueba los diagramas de dispersión antes de interpretar las correlaciones.
5

Crea figuras con varios paneles, añade anotaciones y expórtalas

Una figura útil suele necesitar varias vistas de los mismos datos. Los paneles permiten comparar grupos, las anotaciones relacionan una afirmación con un valor concreto y los ajustes de exportación convierten el resultado en una imagen adecuada para su destino. Mantén el control de la figura durante todo este proceso. El objeto que contiene tus gráficos también contiene su tamaño general y es la forma más fiable de guardar exactamente el resultado que has creado.

5.1 Organiza varios gráficos en una figura

Los gráficos múltiples en pequeños paneles son un conjunto de gráficos del mismo tipo, uno por cada subconjunto de datos, dibujados con las mismas escalas y colocados uno junto a otro para poder comparar los subconjuntos. En Matplotlib se construyen como una cuadrícula de áreas de trazado en una figura.

fig, axes = plt.subplots(2, 3, figsize=(12, 6)) devuelve una figura y un arreglo de NumPy de 2 × 3 áreas de trazado. axes[0, 0] es el panel superior izquierdo y axes[1, 2] el inferior derecho. Con una fila o una columna, el arreglo es unidimensional, por lo que plt.subplots(1, 3) da axes[0], axes[1] y axes[2]. axes.flat recorre todos los paneles fila por fila.

El propio arreglo no puede dibujar: axes.plot(...) produce AttributeError: 'numpy.ndarray' object has no attribute 'plot'. Selecciona primero un panel mediante su índice, como en axes[0, 1].plot(...).

sharex=True y sharey=True dan a todos los paneles los mismos límites de x o de y, de modo que alturas iguales representan valores iguales en todos los paneles y solo los paneles exteriores muestran etiquetas de graduación. Sin ejes compartidos, cada panel ajusta su escala a sus propios datos y un rango pequeño puede parecer tan grande como uno amplio.

fig, axes = plt.subplots(2, 2, sharey=True, layout="constrained"), seguido de for ax, (name, grp) in zip(axes.flat, rain.groupby("station")): ax.plot(grp["month_num"], grp["rain_mm"], marker="o"); ax.set_title(name). Las tres estaciones ocupan tres de los cuatro paneles; axes[1, 1].axis("off") oculta el cuarto, que está vacío.

Las etiquetas de paneles vecinos pueden superponerse. layout="constrained" en plt.subplots o plt.figure ajusta el espaciado automáticamente; fig.tight_layout(), llamado después de dibujar, es la alternativa más antigua. fig.suptitle("Monthly rainfall by station") añade un título para toda la figura, y fig.supxlabel(...) y fig.supylabel(...) añaden etiquetas de ejes compartidas.

Paneles de distintos tamaños: plt.subplots(1, 2, gridspec_kw={"width_ratios": [2, 1]}) hace que el panel izquierdo tenga el doble de ancho que el derecho. fig, axd = plt.subplot_mosaic([["top", "top"], ["left", "right"]]) devuelve un diccionario de áreas de trazado, en este caso un panel ancho axd["top"] sobre dos más pequeños.

Los gráficos de pandas y las funciones de seaborn a nivel de área de trazado pueden rellenar paneles elegidos con ax=: wide["North"].plot(ax=axes[0, 0]) o sns.histplot(data=commutes, x="minutes", ax=axes[0, 1]). Así se combinan gráficos de las tres bibliotecas en una figura.

Puntos clave

  • Selecciona un área del arreglo de áreas de trazado mediante su índice antes de dibujar.
  • Las escalas compartidas permiten comparar paneles.
  • La distribución con restricciones deja espacio para las etiquetas.

5.2 Representa datos por facetas con seaborn

La representación por facetas dibuja el mismo gráfico una vez por cada nivel de una variable categórica, cada uno en su propio panel, con ejes compartidos. Las funciones de seaborn a nivel de figura lo hacen con col= (paneles uno junto a otro), row= (paneles apilados) y col_wrap= (iniciar una nueva fila después de ese número de columnas).

sns.relplot(data=rain, x="month_num", y="rain_mm", col="station", col_wrap=2, kind="line", height=3, aspect=1.5) dibuja tres paneles, dos en la primera fila y uno en la segunda. Cada panel tiene 3 pulgadas de alto y 3 × 1,5 = 4,5 pulgadas de ancho, por lo que la figura mide aproximadamente 9 × 6 pulgadas.

row y col juntos crean una cuadrícula con un panel por cada combinación de niveles: dos estaciones del año como filas y tres estaciones de medición como columnas dan 2 × 3 = 6 paneles. col_wrap no se puede combinar con row.

Los mismos argumentos funcionan para todo tipo de gráficos: sns.displot(data=commutes, x="minutes", col="mode") produce un histograma por medio de transporte, y sns.catplot(data=rain, x="station", y="rain_mm", col="season", kind="box") produce diagramas de caja y bigotes por estación del año.

Los paneles comparten sus ejes x e y de forma predeterminada, por lo que se pueden comparar las alturas entre paneles. Permitir que cada panel ajuste su escala a sus propios datos muestra detalles dentro de grupos pequeños, pero hace que las comparaciones entre paneles resulten engañosas a primera vista. Con relplot y displot, pasa facet_kws={"sharey": False}; catplot acepta sharey=False directamente, y pasarlo también en facet_kws produce un TypeError.

sns.FacetGrid crea la cuadrícula directamente y luego dibuja en cada panel: g = sns.FacetGrid(commutes, col="mode", height=3); g.map_dataframe(sns.histplot, x="minutes"); g.add_legend(). g.map(plt.scatter, "temp_c", "rentals") pasa las columnas indicadas como argumentos posicionales a una función de representación.

Personaliza la cuadrícula con sus métodos: g.set_titles("{col_name}") establece los títulos de los paneles a partir de los nombres de los niveles, g.set_axis_labels("Month", "Rainfall (mm)") etiqueta todos los ejes y g.set(ylim=(0, 120)) aplica un ajuste del área de trazado a cada panel. g.axes_dict["Coast"] o g.axes.flat permite acceder a áreas de trazado individuales, y g.figure.suptitle("Rainfall by station", y=1.02) añade un título general encima de los paneles.

hue y col dividen los datos según una variable. hue superpone los grupos en una sola área de trazado, lo que facilita la comparación directa de unos pocos grupos; col los separa, lo que mantiene la legibilidad cuando las líneas o los puntos se superpondrían o cuando hay muchos grupos. Ambos pueden utilizarse a la vez, por ejemplo col="station", hue="season".

Las funciones a nivel de figura no dibujan en un área de trazado existente (relplot, displot y catplot ignoran ax= con una advertencia, y lmplot lo rechaza) y no aceptan figsize de Matplotlib (pasarlo produce un error): establece el tamaño de la cuadrícula con height y aspect. Para colocar un gráfico por facetas junto a otros gráficos en una figura de Matplotlib, crea los paneles con plt.subplots y funciones a nivel de área de trazado.

Puntos clave

  • Las facetas dividen las filas en paneles por grupo.
  • Las dimensiones de los paneles utilizan height y aspect.
  • Los métodos de la cuadrícula personalizan toda la representación.
  • Los gráficos a nivel de figura no pueden rellenar un área de trazado existente.

5.3 Añade anotaciones y líneas de referencia

ax.text(x, y, "text") escribe texto en un punto indicado en coordenadas de los datos, las mismas unidades que los valores representados. ha («left», «center», «right») y va («top», «center», «bottom») alinean el texto con ese punto; fontsize y color establecen su estilo.

Con transform=ax.transAxes, las posiciones son fracciones del área de trazado: (0, 0) es la esquina inferior izquierda y (1, 1) la superior derecha. ax.text(0.02, 0.95, "n = 20", transform=ax.transAxes, va="top") mantiene una nota en la esquina superior izquierda independientemente de los datos y los límites. El texto en coordenadas de los datos se mueve cuando cambian los límites y puede terminar fuera del área de trazado.

ax.annotate("Wettest month", xy=(1, 110), xytext=(2, 115), arrowprops=dict(arrowstyle="->")) escribe el texto en xytext y dibuja una flecha hacia el punto xy; ambos están en coordenadas de los datos de forma predeterminada. textcoords="offset points" convierte xytext en un desplazamiento desde xy en puntos, por ejemplo xytext=(10, 10) para 10 puntos a la derecha y hacia arriba.

Las líneas de referencia atraviesan toda el área de trazado: ax.axhline(50, color="gray", linestyle="--", label="Target") dibuja una línea horizontal en y = 50, y ax.axvline(...) una vertical. ax.axvspan(6, 8, alpha=0.2) sombrea el intervalo de x = 6 a x = 8, por ejemplo un período de vacaciones. ax.hlines(y, xmin, xmax) dibuja líneas horizontales en un intervalo limitado.

En el histograma de los 20 tiempos de desplazamiento, la media es 650 ÷ 20 = 32,5 minutos y la mediana 30,5 minutos. ax.axvline(32.5, color="black", linestyle="--"); ax.text(33.5, 6.5, "mean 32.5 min") marca la media, que está a la derecha de la mediana porque unos pocos desplazamientos largos la elevan.

Valores de las barras: ax.bar_label(bars, fmt="%.0f") etiqueta las barras devueltas por ax.bar. Para las barras dibujadas por pandas o seaborn, las barras se almacenan en ax.containers, por lo que ax.bar_label(ax.containers[0]) etiqueta la primera serie. padding=3 aleja las etiquetas 3 puntos de los extremos de las barras.

Las formas proceden de matplotlib.patches: ax.add_patch(Rectangle((x, y), width, height, fill=False, edgecolor="red")) dibuja el contorno de una región en coordenadas de los datos, y Circle y Polygon funcionan del mismo modo.

El texto se puede calcular a partir de los datos con cadenas f, de modo que las etiquetas sigan siendo correctas cuando cambien los datos: ax.text(..., f"mean {commutes['minutes'].mean():.1f} min"). Las anotaciones se dibujan encima de los datos; colócalas en zonas vacías y utiliza pocas para que destaquen lo importante.

Puntos clave

  • Las coordenadas de los datos anclan el texto a las mediciones.
  • Las coordenadas del área de trazado anclan el texto al panel.
  • Una anotación separa el punto señalado de la posición del texto.
  • Calcula a partir de los datos las etiquetas que cambian.

5.4 Guarda figuras para informes y para la web

fig.savefig("rainfall.png") guarda la figura; la extensión del archivo determina el formato: PNG y JPEG son imágenes de mapa de bits compuestas por píxeles, mientras que SVG y PDF son gráficos vectoriales compuestos por formas. format="pdf" establece el formato de manera explícita.

Las imágenes de mapa de bits tienen un número fijo de píxeles y se desenfocan al ampliarlas; los archivos vectoriales se mantienen nítidos a cualquier tamaño y son adecuados para informes, impresión y documentos. PNG es un buen formato de mapa de bits para gráficos en la web y en presentaciones. La compresión JPEG tiene pérdida y desenfoca las líneas finas y el texto, por lo que es una mala opción para gráficos.

Tamaño en píxeles = tamaño de la figura en pulgadas × dpi (puntos por pulgada). fig, ax = plt.subplots(figsize=(8, 5)) guardado con dpi=150 da 8 × 150 por 5 × 150 = 1200 × 750 píxeles. Sin dpi, savefig utiliza los dpi propios de la figura, 100 de forma predeterminada, por lo que la misma figura pasa a tener 800 × 500 píxeles. En los formatos vectoriales, los dpi solo afectan a las partes de mapa de bits incrustadas.

El tamaño del texto y el ancho de las líneas se establecen en puntos (1 punto = 1/72 de pulgada), en relación con las pulgadas de la figura. Aumentar los dpi añade píxeles sin cambiar el tamaño aparente del texto respecto al gráfico; en cambio, aumentar figsize hace que el texto sea relativamente más pequeño. Elige figsize según el tamaño final de visualización y dpi según la nitidez.

bbox_inches="tight" recorta los márgenes vacíos e incluye los elementos que sobresalen de la figura, como una leyenda situada fuera del área de trazado; la imagen guardada resulta entonces un poco más pequeña o más grande que el tamaño de la figura × dpi. pad_inches=0.1 establece el margen que se conserva alrededor.

transparent=True guarda sin fondo, lo que resulta adecuado para diapositivas con un fondo de color; facecolor="white" fuerza un fondo blanco, lo que importa cuando un tema oscuro del cuaderno se trasladaría de otro modo al archivo.

plt.savefig guarda la figura actual, así que llámalo antes de una llamada bloqueante a plt.show(): una vez cerrada la ventana, pyplot deja de mantener la referencia a esa figura y una llamada posterior a plt.savefig(...) guarda una figura nueva y vacía. En un cuaderno de Jupyter, pyplot también deja de mantener la figura al final de la celda, por lo que plt.savefig en una celda posterior guarda una imagen vacía. Conservar la figura en una variable evita ambos problemas: fig.savefig(...) sigue funcionando después de plt.show() o en una celda posterior del cuaderno.

Los resultados de seaborn se guardan del mismo modo: un gráfico a nivel de área de trazado mediante su figura, ax.figure.savefig("box.png", dpi=200), y una cuadrícula a nivel de figura con g.savefig("facets.png", dpi=200), que utiliza cajas delimitadoras ajustadas de forma predeterminada.

for name, grp in rain.groupby("station"):
    grp = grp.sort_values("month_num")
    fig, ax = plt.subplots(figsize=(6, 4))
    ax.plot(grp["month_num"], grp["rain_mm"], marker="o")
    ax.set(title=name, xlabel="Month", ylabel="Rainfall (mm)")
    fig.savefig(f"rain_{name}.png", dpi=150, bbox_inches="tight")
    plt.close(fig)

. Cerrar cada figura mantiene bajo el uso de memoria y evita la advertencia sobre más de 20 figuras abiertas.

Puntos clave

  • Guarda el objeto de figura que has creado.
  • Las pulgadas multiplicadas por los dpi dan las dimensiones del mapa de bits sin recortar.
  • Las cajas delimitadoras ajustadas cambian los bordes de la imagen exportada.
  • La salida vectorial conserva las formas.
  • Cierra cada figura después de exportarla por lotes.

Ejemplos de Visualización con Matplotlib y Seaborn

5 Lecciones Interactivas

1

Crea gráficos con figuras y áreas de trazado de Matplotlib

15 pasos
Crea, etiqueta y diagnostica una figura de Matplotlib.
  1. 1
    IntroducciónCrea un gráfico cada vez

    Un comando de representación necesita un lugar donde dibujar. Matplotlib hace explícito ese lugar: una figura contiene una o varias áreas de trazado, y cada área contiene las marcas y las etiquetas. Empieza con un área y luego utiliza los mismos objetos para añadir líneas, puntos, barras y ajustes útiles. Asignar un nombre a la figura y a cada área de trazado facilita modificar el gráfico adecuado cuando un cuaderno crece o una figura contiene varios paneles.

  2. 2
    ExplicaciónConserva una referencia al lienzo

    Una figura contiene la imagen completa. Un área de trazado contiene un gráfico y sus ejes de coordenadas. Crea ambas de forma explícita para que los comandos posteriores tengan un destino claro.

    import matplotlib.pyplot as plt
    fig, ax = plt.subplots(figsize=(7, 4))
    

    El ancho y el alto se expresan en pulgadas. La variable ax apunta al área de trazado dentro de fig; es el objeto que recibirá la línea y sus etiquetas.

  3. 3
    EjemploDibuja en esa área

    Añade una serie breve de temperaturas al área de trazado que acabas de crear. Cada par se convierte en un punto de la línea.

    ax.plot([1, 2, 3], [8, 11, 10])
    ax.set(title="Daily temperature",
           xlabel="Day", ylabel="Temperature (°C)")
    

    Llamar de nuevo a ax.plot añadiría otra línea a esta misma área. En un script, plt.show() muestra la figura; un cuaderno normalmente la muestra debajo de la celda.

  4. 4
    DesafíoCorrige una llamada al título

    La llamada ax.title("Daily temperature") produce un error «Text object is not callable». ¿Cómo debe cambiarse?

    ---reveal---

    Utiliza ax.set_title("Daily temperature"). El atributo title del área de trazado ya es un objeto de texto; set_title es el método que lo cambia. El equivalente de pyplot es plt.title(...), pero actúa sobre el área de trazado que esté seleccionada en ese momento.

  5. 5
    ExplicaciónMantén las observaciones emparejadas

    Una línea conecta los puntos en el orden de entrada. Si la columna de distancia contiene 4, 1, 3 km, la línea retrocede antes de avanzar. Ordena las observaciones completas por distancia, conservando cada elevación junto a su distancia original.

    route = route.sort_values("distance_km")
    ax.plot(route["distance_km"], route["elevation_m"])
    

    Un diagrama de dispersión no necesita un orden de conexión porque cada marcador es una observación separada.

  6. 6
    EjemploDa a cada serie una referencia

    Los estilos de línea y de marcador pueden identificar las series, al igual que el color. Añade una etiqueta al dibujar y luego pide al área de trazado que cree su leyenda.

    ax.plot([1, 2, 3], [4, 8, 7], "o--", label="East")
    ax.plot([1, 2, 3], [6, 7, 9], "s-", label="West")
    ax.legend(title="Site")
    

    En un diagrama de dispersión, los valores numéricos de c necesitan una barra de colores que explique su degradado. Reduce alpha cuando los puntos superpuestos oculten la muestra.

  7. 7
    DesafíoPredice un cambio de tamaño

    Un marcador de dispersión utiliza s=25. Lo cambias a s=100 con la misma forma de marcador. ¿Cómo cambia su ancho?

    ---reveal---

    El ancho se duplica. El área ha aumentado por un factor de cuatro, y las dimensiones lineales aumentan por la raíz cuadrada de ese factor. La s de dispersión se mide en puntos cuadrados; interpretarla como un ancho llevaría a predecir incorrectamente un aumento de cuatro veces.

  8. 8
    ExplicaciónColoca categorías y valores

    Las barras utilizan posiciones de categoría separadas. Empieza con un número por categoría; las cadenas se convierten en etiquetas equidistantes en el orden proporcionado. Un gráfico horizontal deja espacio para nombres largos.

    fig, ax = plt.subplots()
    bars = ax.barh(["Bus", "Rail", "Walk"], [48, 37, 25])
    ax.invert_yaxis()
    ax.bar_label(bars)
    

    La inversión coloca la primera categoría arriba. Invertir solo los nombres asignaría los valores a las categorías equivocadas.

  9. 9
    EjemploConstruye una barra apilada desde su base

    Supón que los viajes de un día laborable consisten en 32 viajes en autobús y 18 en tren. El segundo segmento de la barra debe comenzar en la parte superior del primero.

    ax.bar(["Weekday"], [32], label="Bus")
    ax.bar(["Weekday"], [18], bottom=[32], label="Rail")
    ax.legend()
    

    El segmento del tren tiene una altura de 18 y termina en 50. Si se añade un tercer medio de transporte, su línea de base es el total acumulado de los dos segmentos ya dibujados.

  10. 10
    DesafíoSitúa las barras agrupadas

    Dos barras tienen cada una un ancho de 0,4 y deben quedar centradas juntas en la posición de categoría 1. ¿Dónde deben estar sus centros?

    ---reveal---

    Utiliza 0,8 y 1,2, a medio ancho de barra a cada lado de la marca de graduación. Sus bordes interiores se encuentran en 1 y el par queda centrado en la categoría. Utilizar las posiciones 1 y 1,4 también produciría un par de barras contiguas, pero desplazaría su centro conjunto fuera de la marca de la categoría.

  11. 11
    ExplicaciónSepara las posiciones de las etiquetas

    Las marcas de graduación señalan posiciones de coordenadas; sus etiquetas son el texto que se muestra en ellas. Proporciona ambas juntas al sustituir posiciones numéricas de meses por nombres.

    ax.set_xticks([1, 2, 3], labels=["Jan", "Feb", "Mar"])
    ax.set_ylabel("Rainfall (mm)")
    ax.grid(axis="y", alpha=0.3)
    

    Un formateador cambia cómo se muestran los números existentes. No cambia la escala de los datos, así que comprueba si los porcentajes se almacenan como fracciones o como números de 0 a 100.

  12. 12
    EjemploElige una escala con sentido

    Los pasos iguales en una escala lineal representan diferencias iguales. Los pasos iguales en una escala logarítmica representan razones iguales.

    ax.set_yscale("log")
    

    Los valores 5, 50 y 500 están a distancias iguales porque cada uno es diez veces el valor anterior. El cero y los valores negativos no pueden aparecer en una escala logarítmica ordinaria. Los estilos controlan el aspecto por separado: utiliza un contexto de estilo cuando un aspecto diferente deba aplicarse solo a un bloque de código.

  13. 13
    DesafíoEtiqueta el panel deseado

    Una figura de dos paneles necesita un título en el primero, pero plt.title(...) cambia el segundo. ¿Cómo puede el código dirigirse al primer panel de forma fiable?

    ---reveal---

    Llama a axes[0].set_title(...). El área de trazado indicada es explícita, por lo que el estado actual de pyplot ya no decide el destino. Esto importa siempre que una figura tenga varios paneles o una función auxiliar cree o seleccione otra área de trazado.

  14. 14
    DesafíoExplica una escala numérica de colores

    Un diagrama de dispersión utiliza el color de los puntos para la cantidad de lluvia y el área de los marcadores para el volumen de alquileres. Su leyenda nombra las estaciones, pero no proporciona una escala numérica de colores. ¿Qué necesita aún la figura?

    ---reveal---

    Añade una barra de colores vinculada al resultado del diagrama de dispersión y etiquétala «Precipitación (mm)». La leyenda de estaciones explica los grupos, mientras que la barra de colores explica los tonos numéricos. Conservar el objeto devuelto por el gráfico de dispersión permite que fig.colorbar utilice la misma correspondencia que los puntos representados.

  15. 15
    RepasoComprueba el resultado que has creado

    Un gráfico tiene un lienzo, un área de trazado y objetos gráficos vinculados a esa área. Comprueba que cada serie conserve los pares de observaciones deseados, que las etiquetas identifiquen las variables y las unidades, y que las correspondencias numéricas de colores tengan una referencia. Cuando un cambio afecte al lugar equivocado, inspecciona qué área de trazado recibió la llamada al método. Cuando una forma parezca incorrecta, inspecciona el orden y las coordenadas de los datos antes de cambiar su estilo.

2

Representa datos directamente desde pandas

9 pasos
Prepara los valores y la estructura adecuados antes de dibujar.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónDeja que la tabla proporcione el gráfico
  2. 2
    ExplicaciónUtiliza las etiquetas de la tabla
  3. 3
    EjemploElige columnas numéricas
  4. 4
    DesafíoAlinea líneas y barras
  5. 5
    ExplicaciónResume antes de dibujar
  6. 6
    EjemploElige una estructura para la siguiente biblioteca
  7. 7
    DesafíoCorrige un par repetido al convertir a formato ancho
  8. 8
    DesafíoResume y reestructura conjuntamente
  9. 9
    RepasoComprueba el resultado que has creado
3

Crea gráficos estadísticos con seaborn

12 pasos
Relaciona las correspondencias y los valores estadísticos predeterminados de seaborn con el gráfico.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónInterpreta lo que calcula la función
  2. 2
    ExplicaciónAsocia variables con características
  3. 3
    EjemploElige quién controla la distribución
  4. 4
    DesafíoAdapta la función a la distribución
  5. 5
    ExplicaciónInterpreta el estimador de la línea
  6. 6
    EjemploConserva cada trayectoria
  7. 7
    DesafíoInterpreta una banda estrecha
  8. 8
    ExplicaciónCuenta filas o resume valores
  9. 9
    EjemploMuestra las observaciones
  10. 10
    DesafíoElige el resumen
  11. 11
    DesafíoExplica las diferencias entre las barras
  12. 12
    RepasoComprueba el resultado que has creado
4

Visualiza distribuciones y cuadrículas de valores

12 pasos
Pasa de las observaciones a las distribuciones y las cuadrículas de colores.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónInterpreta con cuidado los datos resumidos
  2. 2
    ExplicaciónCuenta correctamente las observaciones de un intervalo
  3. 3
    EjemploConvierte un recuento en densidad
  4. 4
    DesafíoCompara intervalos de distinta amplitud
  5. 5
    ExplicaciónCalcula los límites a partir de la caja
  6. 6
    EjemploEncuentra el extremo observado del bigote
  7. 7
    DesafíoMira dentro de una caja idéntica
  8. 8
    ExplicaciónParte de la cuadrícula numérica
  9. 9
    EjemploFija el significado del color
  10. 10
    DesafíoDiagnostica tonos coincidentes
  11. 11
    DesafíoComprueba dos resúmenes conjuntamente
  12. 12
    RepasoComprueba el resultado que has creado
5

Crea figuras con varios paneles, añade anotaciones y expórtalas

16 pasos
Organiza paneles, ancla anotaciones y exporta el resultado.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónPrepara una figura para compartir
  2. 2
    ExplicaciónCrea paneles a los que puedas acceder
  3. 3
    EjemploRellena la cuadrícula con grupos
  4. 4
    DesafíoMantén comparables las escalas
  5. 5
    ExplicaciónDeja que seaborn divida la tabla
  6. 6
    EjemploPersonaliza la cuadrícula como conjunto
  7. 7
    DesafíoCambia la escala compartida con el argumento adecuado
  8. 8
    ExplicaciónElige qué ancla el texto
  9. 9
    EjemploVincula una etiqueta a un máximo
  10. 10
    DesafíoMantén correcta una etiqueta después de filtrar
  11. 11
    ExplicaciónElige las dimensiones antes que los píxeles
  12. 12
    EjemploGuarda la figura conservada
  13. 13
    DesafíoCombina decisiones de distribución y exportación
  14. 14
    DesafíoCompleta un proceso por lotes reproducible
  15. 15
    ConsejoInspecciona el resultado guardado
  16. 16
    RepasoComprueba el resultado que has creado

Ejercicios de Visualización con Matplotlib y Seaborn

50 Preguntas de Práctica en 5 sets

Set 1: Interpreta gráficos y comprueba los conceptos básicos10 Preguntas de Práctica

Pregunta 1 de 10

Con el motor predeterminado de Matplotlib, ¿qué devuelve df.plot(y="depth_mm") cuando dibuja un panel?
  1. Una cuadrícula de facetas de seaborn
  2. Un área de trazado de Matplotlib
  3. Una Series de pandas
  4. Una figura de Matplotlib
Mostrar respuestaOcultar respuesta
Respuesta: B
Un gráfico ordinario de pandas devuelve el área de trazado en la que dibujó, que puedes personalizar con métodos como set_ylabel. No devuelve la figura completa; accede a ella mediante el atributo figure del área de trazado cuando necesites guardar la imagen.

Pregunta 2 de 10

Para plt.subplots(2, 3), ¿cómo seleccionas el panel inferior derecho?
  1. axes[2, 3]
  2. axes[1, 3]
  3. axes[2, 1]
  4. axes[1, 2]
Mostrar respuestaOcultar respuesta
Respuesta: D
El arreglo de áreas de trazado utiliza índices de fila y columna que empiezan en cero. La segunda fila tiene el índice 1 y la tercera columna el índice 2, por lo que el panel inferior derecho es axes[1, 2]. Utilizar 2 y 3 cuenta desde uno y apunta fuera de los límites de este arreglo.

Pregunta 3 de 10

Quieres conocer el número de observaciones en cada categoría de equipos. ¿Qué gráfico de seaborn proporciona directamente ese dato?
  1. Un gráfico de frecuencias de la categoría
  2. Un gráfico de puntos de categoría y medición
  3. Un gráfico de barras de categoría y medición
  4. Un diagrama de caja de categoría y medición
Mostrar respuestaOcultar respuesta
Respuesta: A
Un gráfico de frecuencias absolutas calcula el número de filas de cada categoría y no necesita una columna numérica de respuesta. Un gráfico de barras normalmente muestra la media de una variable numérica, por lo que sus barras responderían a una pregunta sobre mediciones medias en lugar de frecuencias de categorías.

Pregunta 4 de 10

Un eje y almacena proporciones como fracciones. ¿Qué ajuste del formateador muestra 0,32 como «32%»?
  1. PercentFormatter(xmax=0.32)
  2. PercentFormatter(xmax=32)
  3. PercentFormatter(xmax=1)
  4. PercentFormatter(xmax=100)
Mostrar respuestaOcultar respuesta
Respuesta: C
Con xmax=1, una unidad completa representa el 100 %, por lo que 0,32 se muestra como 32%. Establecer xmax=100 sería adecuado para valores ya almacenados en una escala de 0 a 100; con fracciones etiquetaría 0,32 como 0.32%.

Pregunta 5 de 10

¿Qué describe la banda sombreada predeterminada alrededor de una línea de medias de seaborn?
  1. El rango completo de los valores registrados
  2. La incertidumbre de las medias estimadas
  3. La mitad central de todas las observaciones
  4. Una desviación estándar de las observaciones
Mostrar respuestaOcultar respuesta
Respuesta: B
La banda predeterminada es un intervalo de confianza del 95 % para la media en cada valor de x, calculado mediante remuestreo bootstrap. Describe la incertidumbre de esa estimación. Una banda de desviación estándar describe la dispersión entre observaciones y se solicita con errorbar="sd"; tiene una interpretación distinta.

Pregunta 6 de 10

Las mediciones de sensores se repiten para cada par de estación y hora. ¿Qué operación de tabla da una media por cada par en una tabla de estación por hora en formato ancho?
  1. pivot_table(..., aggfunc="mean")
  2. value_counts() sobre nombres de estaciones
  3. melt(...) con identificadores de estación
  4. pivot(...) sin una agregación
Mostrar respuestaOcultar respuesta
Respuesta: A
Una tabla dinámica puede combinar los pares de estación y hora repetidos mediante una media y organizar esas medias en filas y columnas. Una conversión ordinaria a formato ancho requiere que cada par sea único, por lo que no puede decidir qué hacer con varias mediciones en la misma celda.

Pregunta 7 de 10

Quieres paneles separados de diagramas de caja y bigotes categóricos con escalas de y independientes. ¿Cuál es la configuración correcta de seaborn a nivel de figura?
  1. catplot(kind="box", col="site", facet_kws={"sharey": False})
  2. boxplot(col="site", sharey=False)
  3. catplot(kind="box", row="site", col_wrap=2)
  4. catplot(kind="box", col="site", sharey=False)
Mostrar respuestaOcultar respuesta
Respuesta: D
Utiliza catplot para facetas categóricas y pasa sharey=False directamente. A diferencia de relplot y displot, catplot proporciona este argumento a su cuadrícula, por lo que incluirlo también mediante facet_kws produce un error de argumento duplicado. Un solo diagrama de caja a nivel de área de trazado no puede crear facetas mediante col.

Pregunta 8 de 10

Un diagrama de puntos por categorías utiliza el color para los turnos, pero ambos ocupan la misma posición dentro de cada categoría. ¿Qué separa los grupos uno junto a otro?
  1. Establecer native_scale=True.
  2. Establecer jitter=False.
  3. Establecer dodge=True.
  4. Establecer errorbar=None.
Mostrar respuestaOcultar respuesta
Respuesta: C
El desplazamiento lateral mueve los grupos codificados por color a posiciones separadas dentro de cada categoría. Los diagramas de puntos por categorías no lo hacen de forma predeterminada, así que debes activarlo explícitamente. Desactivar el desplazamiento aleatorio solo elimina el movimiento aleatorio de los puntos; los grupos seguirían compartiendo el mismo centro de categoría.

Pregunta 9 de 10

Una tabla dinámica de medias tiene valores de coma flotante como 26,0. ¿Qué formato de mapa de calor muestra etiquetas sin decimales sin cambiar su tipo de datos?
  1. fmt=".2f"
  2. fmt="d"
  3. fmt=".0f"
  4. fmt=".0g"
Mostrar respuestaOcultar respuesta
Respuesta: C
El formato de coma flotante .0f muestra cero decimales y funciona con medias almacenadas como números de coma flotante. El formato entero d requiere datos enteros y puede producir un error incluso para 26,0. Dar formato al texto mostrado no cambia los valores de la tabla.

Pregunta 10 de 10

Las mediciones son 8, 12, 16 y 24 minutos. Un filtro elimina las mediciones de al menos 20 minutos. Una línea de media debe corresponder a las filas restantes y una nota sobre el tamaño de la muestra debe permanecer en la esquina superior izquierda del panel cuando cambien los límites. ¿Qué debe utilizar la figura actualizada?
  1. Una línea de media en 15 y una nota «n = 3» en coordenadas del área de trazado.
  2. Una línea de media en 12 y una nota «n = 3» en coordenadas de los datos.
  3. Una línea de media en 12 y una nota «n = 4» en coordenadas del área de trazado.
  4. Una línea de media en 12 y una nota «n = 3» en coordenadas del área de trazado.
Mostrar respuestaOcultar respuesta
Respuesta: D
Los valores restantes suman 36 en tres observaciones, por lo que su media es 12 minutos y la nota debe mostrar «n = 3». Las coordenadas del área de trazado mantienen esa nota cerca de la esquina cuando cambian los límites. La media original de cuatro valores es 15, que mantendría la observación excluida en el resumen.
Set 2: Aplica decisiones de representación a datos nuevos10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

¿Qué sistema de coordenadas mantiene una nota cerca de la esquina superior izquierda de un panel cuando cambian los límites de los datos?
  1. Las unidades de la variable x
  2. Las unidades de la variable y
  3. Las coordenadas del área de trazado
  4. Las coordenadas de los datos
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

En ax.scatter(x, y, s=64), ¿qué especifica 64?
  1. El área del marcador en puntos cuadrados
  2. El ancho del marcador en puntos
  3. La opacidad del marcador en porcentaje
  4. El radio del marcador en puntos
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Con los límites [0, 5, 10, 15], ¿qué intervalo contiene el valor 5?
  1. Ningún intervalo porque es un límite
  2. Los dos intervalos que tocan el valor 5
  3. El intervalo desde 0 hasta menos de 5
  4. El intervalo desde 5 hasta menos de 10
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Una caja tiene Q1 = 12 y Q3 = 20. Los valores observados por encima de Q3 son 24, 30 y 35. ¿Dónde termina el bigote superior predeterminado?
  1. 24
  2. 30
  3. 32
  4. 35
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Un gráfico almacena proporciones como fracciones y tiene un objetivo del 75 %. ¿Qué combinación coloca correctamente el objetivo y etiqueta el eje y en porcentajes?
  1. ax.axhline(0.75) y PercentFormatter(xmax=100)
  2. ax.axhline(0.75) y PercentFormatter(xmax=1)
  3. ax.axhline(75) y PercentFormatter(xmax=100)
  4. ax.axhline(75) y PercentFormatter(xmax=1)
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Una tabla de ruta tiene distancias [4, 1, 3] km y elevaciones emparejadas [90, 40, 75] m. ¿Qué orden debe utilizar una línea que avance?
  1. (1, 40), (3, 75), (4, 90)
  2. (1, 90), (3, 40), (4, 75)
  3. (1, 40), (4, 90), (3, 75)
  4. (4, 90), (1, 40), (3, 75)
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Hay mediciones en los años 2017, 2018 y 2022. Un gráfico categórico de seaborn las sitúa a distancias iguales. ¿Qué conserva las distancias reales?
  1. sharey=True
  2. errorbar=None
  3. dodge=True
  4. native_scale=True
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Un gráfico por facetas tiene dos niveles de fila y cuatro niveles de columna. ¿Cuántos paneles crea?
  1. 8
  2. 6
  3. 4
  4. 2
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Una región tiene 9 viajes en tren y 3 a pie; otra tiene 12 viajes en tren y 12 a pie. Quieres barras apiladas de igual altura para comparar la composición de los viajes. ¿Qué valores deben tener los segmentos del tren?
  1. 0,30 y 0,40
  2. 0,43 y 0,57
  3. 0,75 y 0,50
  4. 9,00 y 12,00
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un informe necesita una imagen PNG de 900 × 600 píxeles con una leyenda exterior completamente visible. El lienzo previsto mide 6 × 4 pulgadas. ¿Qué plan controla mejor tanto las dimensiones como el recorte?
  1. Usar 100 dpi, reservar espacio para la leyenda dentro del lienzo y guardar sin recorte ajustado.
  2. Usar 150 dpi, reservar espacio para la leyenda dentro del lienzo y guardar sin recorte ajustado.
  3. Usar 150 dpi, colocar la leyenda fuera del lienzo y guardar sin recorte ajustado.
  4. Usar 150 dpi, colocar la leyenda fuera del lienzo y forzar el recorte ajustado para conservar su tamaño.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 3: Relaciona tablas, resúmenes y gráficos10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Un gráfico de líneas predeterminado de seaborn tiene mediciones repetidas en el mismo valor de x. ¿Qué muestra la línea en ese valor de x?
  1. La suma de los valores de y
  2. La mediana de los valores de y
  3. El primer valor de y registrado
  4. La media de los valores de y
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

¿Qué hace una segunda llamada a ax.plot(...) en un área de trazado existente?
  1. Sustituye su última serie
  2. Crea otra área de trazado
  3. Añade otra serie
  4. Elimina sus etiquetas existentes
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Un cuaderno crea y guarda fig en una celda. Una celda posterior necesita guardar ese gráfico exacto después de que pyplot haya dejado de mantener su referencia. ¿Qué llamada es fiable?
  1. fig.savefig("chart.png")
  2. plt.savefig("chart.png")
  3. plt.show("chart.png")
  4. plt.figure().savefig("chart.png")
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Un gráfico apilado tiene un segmento de base de 28 y un segundo segmento de 17. ¿Cuál es la base y cuál es el extremo superior del segundo segmento?
  1. Base 0; extremo superior 17
  2. Base 28; extremo superior 45
  3. Base 28; extremo superior 17
  4. Base 17; extremo superior 45
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Una función auxiliar llama a plt.title("Depth") después de crear una segunda figura. El título debe pertenecer al área de trazado de la primera figura, almacenada como first_ax. ¿Cómo debe establecerse el título?
  1. first_ax.title("Depth")
  2. first_ax.set_title("Depth")
  3. plt.figure().suptitle("Depth")
  4. plt.title("Depth") después de la función auxiliar
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Un tiempo de entrega está más allá del límite superior de un diagrama de caja y bigotes. ¿Qué debes hacer antes de eliminarlo?
  1. Eliminarlo porque el límite señala datos no válidos.
  2. Sustituirlo por el extremo del bigote superior.
  3. Investigar si el tiempo registrado es válido.
  4. Conservar solo valores dentro del rango intercuartílico.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Una flecha debe apuntar a (8, 42), con el texto 12 puntos por encima. ¿Cuáles deben ser xy y xytext con textcoords="offset points"?
  1. xy=(8, 42), xytext=(0, 12)
  2. xy=(8, 42), xytext=(8, 54)
  3. xy=(8, 54), xytext=(0, 12)
  4. xy=(0, 12), xytext=(8, 42)
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Dos grupos tienen 40 y 200 observaciones. Un intervalo de cinco minutos contiene 10 del primer grupo y 20 del segundo. Cada histograma debe tener un área de uno. ¿Qué alturas de densidad debe tener ese intervalo y qué ajuste de normalización se necesita?
  1. 0,25 y 0,10 por minuto; common_norm=False.
  2. 0,05 y 0,02 por minuto; common_norm=True.
  3. 0,01 y 0,02 por minuto; common_norm=True.
  4. 0,05 y 0,02 por minuto; common_norm=False.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Una Series indexada por los años 2018, 2020 y 2024 se dibuja como barras de pandas. Se añade al mismo área de trazado una línea que utiliza esos años numéricos. ¿Cómo pueden alinearse ambas series conservando las etiquetas de los años?
  1. Convertir solo las alturas de las barras en un arreglo numérico antes de dibujar.
  2. Representar ambas en las posiciones 0, 1, 2 y etiquetar esas marcas con los años.
  3. Ordenar ambas series por año y conservar sus coordenadas actuales.
  4. Establecer límites de y idénticos y conservar sus coordenadas actuales.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Una imagen PNG de 6 × 3 pulgadas a 100 dpi utiliza etiquetas de 12 puntos que parecen tener el tamaño correcto respecto al gráfico. Necesitas 1200 × 600 píxeles y mantendrás la fuente en 12 puntos. ¿Qué tamaño de figura y resolución conservan las proporciones de las etiquetas?
  1. 6 × 3 pulgadas a 200 dpi.
  2. 12 × 6 pulgadas a 100 dpi.
  3. 6 × 3 pulgadas a 100 dpi.
  4. 12 × 6 pulgadas a 200 dpi.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 4: Diagnostica ajustes y comparaciones de gráficos10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Una figura tiene tres paneles de representación. ¿Cuántas áreas de trazado contiene?
  1. Tres
  2. Una
  3. Seis
  4. Dos
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Una tabla contiene una fila por viaje y una columna mode. ¿Qué produce el número de viajes por medio de transporte?
  1. trips["mode"].sort_values()
  2. trips["mode"].unique()
  3. trips["mode"].value_counts()
  4. trips["mode"].drop_duplicates()
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Una tabla en formato largo tiene height_cm, mass_kg y species. ¿Cómo puede un diagrama de dispersión identificar las especies tanto por color como por forma del marcador?
  1. Asociar la especie con el tamaño y con y.
  2. Asociar la especie con el color y el tamaño.
  3. Asociar la especie con x y con el estilo.
  4. Asociar la especie con el color y el estilo.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Un gráfico de líneas de meses utiliza nombres de texto que aparecen como «May», «Mar», «Apr». Necesitas orden de calendario y una línea por sitio. ¿Qué cambio es adecuado?
  1. Pasar el orden de meses a lineplot y asociar el sitio con el color.
  2. Convertir el mes en una variable categórica ordenada y asociar el sitio con el color.
  3. Ordenar los nombres de meses alfabéticamente y asociar el sitio con el color.
  4. Asociar el mes con el color y ordenar alfabéticamente los nombres de sitios.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Dos series tienen un ancho de barra de 0,3 y deben situarse una junto a otra, centradas juntas en x = 2. ¿Dónde deben estar sus centros?
  1. 1,7 y 2,3
  2. 2,0 y 2,3
  3. 1,85 y 2,15
  4. 1,85 y 2,3
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Una faceta tiene una altura de 4 pulgadas y una relación de aspecto de 1,25. ¿Qué ancho tiene ese panel?
  1. 5 pulgadas
  2. 3,2 pulgadas
  3. 4 pulgadas
  4. 1,25 pulgadas
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Dos muestras tienen los mismos cuartiles y extremos de los bigotes, pero distintas agrupaciones de observaciones. ¿Qué representación puede mostrar la diferencia y por qué?
  1. Ocultar los puntos atípicos para mostrar las agrupaciones ausentes.
  2. Aumentar el ancho de la caja para codificar las agrupaciones.
  3. Fijar los límites de y para que las cajas sean diferentes.
  4. Superponer diagramas de puntos para mostrar los valores individuales.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Un gráfico horizontal ordenado debe mostrar los valores 52, 31 y 19 de arriba abajo. Los pares originales de nombre y valor son A–31, B–19, C–52. ¿Qué preparación y ajuste del eje consiguen esto?
  1. Ordenar los pares de forma ascendente, dibujarlos y luego invertir el eje y.
  2. Ordenar los pares de forma descendente, dibujarlos y luego invertir el eje y.
  3. Ordenar los pares de forma descendente, dibujarlos y luego invertir el eje x.
  4. Ordenar los nombres de forma descendente, mantener fijos los valores y dibujarlos.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Dos intervalos contiguos tienen amplitudes de 2 y 4 y contienen 10 observaciones cada uno en una muestra de 50. Con escala de densidad, ¿cuáles son sus alturas y áreas?
  1. Alturas 0,05 y 0,10; áreas 0,10 y 0,40
  2. Alturas 0,10 y 0,05; áreas 0,20 y 0,20
  3. Alturas 0,10 y 0,10; áreas 0,20 y 0,40
  4. Alturas 0,20 y 0,20; áreas 0,40 y 0,80
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un informe necesita tendencias de tres sitios en una cuadrícula de 2 × 2, comparables en milímetros. Las filas llegan con los meses desordenados. ¿Qué construcción evita líneas que retroceden, alturas de paneles engañosas y un panel vacío visible?
  1. Ordenar cada sitio por mes, compartir límites de y y ocultar el área de trazado sobrante.
  2. Ordenar cada sitio por mes, compartir límites de y y repetir un sitio en el área sobrante.
  3. Ordenar cada sitio por mes, escalar cada eje y y ocultar el área de trazado sobrante.
  4. Ordenar cada sitio por profundidad, compartir límites de y y ocultar el área sobrante.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 5: Resuelve problemas de representación y exportación10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

¿Qué tipo de función de seaborn puede dibujar en un área de trazado existente de Matplotlib que hayas elegido?
  1. Un constructor de PairGrid
  2. Una función a nivel de área de trazado
  3. Una función a nivel de figura
  4. Un constructor de FacetGrid
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

En un eje y logarítmico, un punto pasa de 3 a 30. ¿Qué cambio tiene la misma distancia vertical?
  1. De 30 a 300
  2. De 30 a 57
  3. De 30 a 130
  4. De 30 a 60
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Una columna de profundidad contiene cadenas como «15 mm» y pandas la omite al representar los datos. ¿Qué corrección es útil?
  1. Dar al gráfico una etiqueta que contenga el texto de la unidad.
  2. Aumentar el ancho de la figura y girar las etiquetas de graduación.
  3. Cambiar el tipo de gráfico de líneas a barras horizontales.
  4. Eliminar el texto de la unidad y convertir los valores en números.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Una muestra de 40 valores tiene 12 observaciones en un intervalo de 6 minutos de amplitud. ¿Cuál es la altura de densidad de ese intervalo?
  1. 0,15 por minuto
  2. 2,00 por minuto
  3. 0,05 por minuto
  4. 0,30 por minuto
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Una recta de ajuste asciende en general, pero los puntos suben con rapidez al principio y luego se estabilizan. ¿Qué debe orientar la siguiente inspección?
  1. Ocultar los puntos y juzgar el ajuste solo por su pendiente.
  2. Interpretar que la banda de confianza contiene todas las observaciones posibles.
  3. Tratar la recta como evidencia de una tasa constante en todo el rango.
  4. Inspeccionar la curvatura y comparar el ajuste recto con uno curvo.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Un mapa de calor de correlaciones tiene un coeficiente cercano a cero, pero el diagrama de dispersión correspondiente muestra una forma clara de U. ¿Cómo debes interpretar el par?
  1. No hay relación porque el coeficiente está cerca de cero.
  2. Hay una relación curva con una asociación lineal débil.
  3. Hay una relación lineal positiva fuerte en todo el rango.
  4. Hay una relación lineal negativa fuerte en todo el rango.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Tres gráficos de estaciones utilizan límites de y automáticos e independientes. Un cambio de 4 mm parece tener la misma altura que uno de 40 mm. ¿Cómo debes reconstruir la figura para comparar magnitudes directamente?
  1. Utilizar límites de y compartidos y conservar los valores reales de cada estación.
  2. Mantener límites separados y dar a cada panel la misma altura.
  3. Normalizar cada estación a su propio máximo y compartir límites de y.
  4. Mantener límites separados y añadir el mismo título a cada panel.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Dos sitios necesitan mapas de calor comparables por franja. El sitio A tiene recuentos duplicados de 20 y 40 para una franja; el sitio B tiene 70 para esa franja. Cada celda debe mostrar una media sin decimales. ¿Qué preparación y ajustes de visualización mantienen comparables tanto los valores como los tonos?
  1. Agregar con suma, usar fmt=".0f" e igualar el mapa de colores y los límites.
  2. Agregar con media, usar fmt="d" e igualar el mapa de colores y los límites.
  3. Agregar con media, usar fmt=".0f" e igualar el mapa de colores y los límites.
  4. Agregar con media, usar fmt=".0f" y permitir límites automáticos separados.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Una tabla registra cada dispositivo en varios momentos. Necesitas las trayectorias individuales de los dispositivos, coloreadas por modelo, sin una entrada de leyenda separada para cada dispositivo. ¿Cómo debe configurarse el gráfico de líneas?
  1. Usar el modelo para el color, omitir las unidades y conservar el estimador de media.
  2. Usar el dispositivo para las unidades, el modelo para el color y estimator=None.
  3. Usar el dispositivo para el color, el modelo para las unidades y el estimador de media.
  4. Usar el dispositivo para el estilo, el modelo para el color y el estimador de media.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Un diagrama de dispersión debe asociar los recuentos de muestras con el área de los marcadores y la precipitación con el color. Los recuentos 20 y 80 deben hacer que el segundo marcador tenga el doble de ancho que el primero, y los lectores necesitan una escala numérica de precipitación. ¿Qué construcción es adecuada?
  1. Usar s=counts, c=rain_mm y una barra de colores del resultado de dispersión.
  2. Usar s=counts**2, c=rain_mm y una barra de colores del resultado de dispersión.
  3. Usar s=rain_mm, c=counts y una barra de colores del resultado de dispersión.
  4. Usar s=counts, c=rain_mm y una leyenda de los dos recuentos de muestras.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

¿Te atascas con una pregunta tuya? Ayuda con Tareas

Términos Clave

78 Términos Clave, cada uno con su definición

Á

Área de trazado
Un área de trazado es una zona de representación de una figura de Matplotlib, con sus propios objetos gráficos, etiquetas, límites y sistema de coordenadas.
Selecciona el área de trazado correcta antes de añadir un título al segundo panel de una comparación de estaciones.
Área del marcador
El área del marcador es la magnitud de tamaño controlada por el argumento s de dispersión, medida en puntos tipográficos cuadrados.
Duplicar el área del marcador aumenta su ancho aproximadamente 1,4 veces, no lo duplica.

A

Accesor de gráficos
El accesor de gráficos de pandas proporciona métodos de representación en una Series o un DataFrame y utiliza Matplotlib de forma predeterminada.
Utiliza el accesor de gráficos sobre recuentos agrupados y luego personaliza el área de trazado devuelta con una etiqueta de unidad.
Agregación
La agregación combina varias filas en un resumen, como una media, una suma o un recuento, para cada grupo definido.
La agregación por estación convierte las filas de precipitación diaria en un valor de precipitación media por estación.
Ancho de banda
El ancho de banda controla el suavizado de una estimación de densidad por núcleos; un ancho de banda mayor produce una curva más suave.
Aumentar el ancho de banda puede unir dos pequeñas elevaciones que aparecían en una curva más detallada.
Anotación
Una anotación es un texto vinculado a una posición determinada, que opcionalmente utiliza una flecha y una etiqueta colocada por separado.
Una anotación puede nombrar un máximo y colocar el texto a su lado para dejar visible el punto.
Arreglo de áreas de trazado
Un arreglo de áreas de trazado es un arreglo de NumPy de objetos de áreas de trazado que se devuelve cuando Matplotlib crea varios subgráficos.
Selecciona un elemento del arreglo de áreas de trazado mediante su índice antes de dibujar; el arreglo en sí no tiene un método de representación.

B

Banda de desviación estándar
Una banda de desviación estándar se extiende un número elegido de desviaciones estándar alrededor de un resumen para mostrar la dispersión de los datos.
Una banda de una desviación estándar responde a una pregunta distinta de una banda de confianza para una media.
Barra de colores
Una barra de colores es una escala numérica que muestra cómo se asignan los valores a los colores en un diagrama de dispersión, un mapa de calor u otra imagen.
Una barra de colores de precipitación permite interpretar el degradado de un diagrama de dispersión de temperatura y alquileres.
Bigote
Un bigote se extiende desde una caja hacia la observación más extrema dentro de su límite, según la regla habitual del diagrama de caja y bigotes.
Un límite superior de 36 minutos y un máximo observado dentro del límite de 33 sitúan el bigote en 33 minutos.

C

Caja delimitadora ajustada
Una caja delimitadora ajustada adapta los límites de exportación al contenido dibujado y al margen, lo que puede cambiar las dimensiones finales de la imagen.
Una caja delimitadora ajustada puede incluir una leyenda exterior y eliminar los márgenes no utilizados.
Codificación por color
La codificación por color es una correspondencia semántica de seaborn que representa una variable mediante colores y normalmente añade una leyenda correspondiente.
Una variable categórica codificada por color da colores distintos a las estaciones, mientras que una numérica puede mostrar un degradado de precipitación.
Columna numérica
Una columna numérica almacena valores como números que los métodos de representación pueden utilizar para mediciones y resúmenes.
Una columna que contiene cadenas como «18 mm» necesita limpiarse antes de convertirse en una columna numérica.
Contenedor de barras
Un contenedor de barras es la colección devuelta por una llamada que dibuja barras y contiene las barras que después pueden recibir etiquetas de valores.
Conserva el contenedor de barras cuando quieras etiquetar una serie de un gráfico agrupado.
Conversión a formato ancho
La conversión a formato ancho reorganiza valores en filas y columnas definidas por dos identificadores; cada par de identificadores debe ser único.
Las mediciones repetidas de una estación y un mes requieren agregación antes de una conversión ordinaria a formato ancho.
Conversión a formato largo
La conversión a formato largo reestructura las columnas de series en una columna de nombres de variables y otra de valores, conservando los identificadores elegidos.
Convertir tres columnas de estaciones a formato largo crea un campo de estación que seaborn puede utilizar para las facetas.
Coordenadas de los datos
Las coordenadas de los datos sitúan una marca mediante las unidades de las variables representadas, por lo que su posición en pantalla depende de los límites de los ejes.
Una anotación en 20 minutos y 12 observaciones se mueve en pantalla cuando cambian esos límites.
Coordenadas del área de trazado
Las coordenadas del área de trazado sitúan un elemento mediante fracciones de esa área, desde cero en la esquina inferior izquierda hasta uno en la superior derecha.
Una nota sobre el tamaño de la muestra en la posición del área de trazado (0,02; 0,95) permanece cerca de la esquina superior izquierda del panel.
Correspondencia semántica
Una correspondencia semántica relaciona una variable de datos con una característica visual como la posición, el color, el estilo del marcador o el tamaño.
Asociar la estación tanto con el color como con el estilo distingue los mismos grupos de dos formas visuales.
Cuadrícula de facetas
Una cuadrícula de facetas es un objeto de seaborn que contiene una figura y paneles específicos de cada grupo, con métodos para dibujar y etiquetar.
Una cuadrícula de facetas puede aplicar una función de histograma por separado a las observaciones de cada estación.
Cuartil
Un cuartil es un límite que divide los datos ordenados en cuatro partes; Q1 y Q3 delimitan la mitad central según el método elegido.
Los cuartiles interpolados pueden diferir de las medianas calculadas a mano de las mitades de una muestra pequeña.

D

Densidad de probabilidad
La densidad de probabilidad escala los recuentos según el tamaño de la muestra y la amplitud del intervalo para que el área del histograma represente una proporción de observaciones.
Una densidad de 0,02 por minuto en un intervalo de diez minutos da una proporción de 0,2.
Desplazamiento lateral de grupos
El desplazamiento lateral mueve los grupos codificados por color a posiciones separadas dentro de cada categoría para poder comparar sus marcas una junto a otra.
Activar el desplazamiento lateral separa los grupos codificados por color en un diagrama de puntos por categorías que, de otro modo, se superpondrían.
Diagrama de dispersión
Un diagrama de dispersión coloca marcadores separados en pares de valores numéricos para mostrar relaciones entre observaciones.
Cada marcador de un diagrama de dispersión puede representar la temperatura y los alquileres de bicicletas de un día.
Diagrama de enjambre
Un diagrama de enjambre desplaza los puntos individuales en la dirección de las categorías para evitar superposiciones cuando hay suficiente espacio.
Un diagrama de enjambre puede mostrar por separado tiempos repetidos en lugar de ocultarlos en una misma posición.
Diagrama de puntos por categorías
Un diagrama de puntos por categorías dibuja observaciones individuales por categoría, normalmente con un desplazamiento aleatorio para reducir la superposición exacta.
Un diagrama de puntos por categorías sobre un diagrama de caja y bigotes muestra los tiempos de entrega individuales junto a su resumen.
Diagrama de violín
Un diagrama de violín muestra una estimación de densidad reflejada para cada grupo, a menudo con un pequeño resumen dibujado en su interior.
Un diagrama de violín puede revelar dos picos ocultos por un diagrama de caja y bigotes de las mismas observaciones.
Distribución con restricciones
La distribución con restricciones es un motor de distribución de Matplotlib que ajusta el espaciado de los paneles para dejar espacio a etiquetas y elementos decorativos.
La distribución con restricciones ayuda a evitar que las etiquetas largas del eje y choquen con el panel vecino.
Distribución de facetas en varias filas
La distribución de facetas en varias filas limita el número de columnas de facetas y continúa los paneles restantes en filas posteriores.
Una distribución con un máximo de tres columnas coloca siete paneles de estaciones en filas de tres, tres y uno.

E

Eje
Un eje es el eje de coordenadas x o y de un área de trazado, incluidas sus marcas de graduación, sus etiquetas y su escala.
El eje vertical de un gráfico de temperatura puede mostrar etiquetas de graduación en grados Celsius.
Eje compartido
Un eje compartido vincula las escalas de coordenadas de varios paneles para que las posiciones correspondientes representen los mismos valores.
Un eje y compartido hace que una altura de 80 mm ocupe la misma posición en cada panel de estación.
Escala logarítmica
Una escala logarítmica asigna distancias visuales iguales a razones iguales de valores positivos en lugar de a diferencias iguales.
En una escala logarítmica, de 2 a 20 ocupa la misma distancia que de 20 a 200.
Escala original de los datos
La escala original conserva las distancias numéricas o de fechas reales en un eje categórico de seaborn en lugar de utilizar pasos iguales entre categorías.
Con la escala original, los años 2019 y 2023 están más separados que 2019 y 2020.
Estimación de densidad por núcleos
Una estimación de densidad por núcleos es una estimación suavizada de la forma de una distribución que se obtiene al combinar pequeñas curvas alrededor de las observaciones.
Una estimación de densidad por núcleos puede extenderse por debajo de cero aunque todos los tiempos medidos sean positivos.
Estimador
Un estimador es la regla utilizada para resumir observaciones repetidas, por ejemplo mediante su media, mediana o suma.
Cambiar el estimador de media a suma cambia lo que representa la altura de una barra de seaborn.

F

Faceta
Una faceta es un panel que repite un gráfico para un subconjunto seleccionado mediante una variable de agrupación.
Una faceta por medio de transporte compara la misma distribución de tiempos de desplazamiento entre grupos.
Figura
Una figura es el lienzo completo de Matplotlib, que contiene áreas de trazado y elementos generales de la figura, como un título general.
Una figura puede contener un gráfico de líneas de precipitación junto a un histograma de temperaturas diarias.
Formateador de etiquetas de graduación
Un formateador de etiquetas de graduación convierte los valores de coordenadas en etiquetas visibles sin cambiar los datos numéricos subyacentes.
Un formateador de porcentajes puede mostrar la fracción 0,4 como «40%» en un gráfico de proporciones.
Formato ancho
El formato ancho almacena series separadas en columnas separadas, con identificadores de fila compartidos entre esas series.
Una tabla en formato ancho con una columna por estación dibuja una línea de pandas por estación.
Formato largo
El formato largo almacena variables en columnas y observaciones en filas, con una columna de grupo que identifica cada serie.
Una tabla en formato largo puede asociar la columna de estación con el color y la columna de precipitación con la posición vertical.
Función a nivel de área de trazado
Una función a nivel de área de trazado dibuja en un área de Matplotlib, acepta un área existente y devuelve el área en la que dibujó.
Un histograma de seaborn a nivel de área de trazado puede rellenar el panel derecho de una figura personalizada de Matplotlib.
Función a nivel de figura
Una función a nivel de figura crea su propia figura o cuadrícula y puede dividir los datos en paneles mediante correspondencias de filas y columnas.
Un gráfico relacional a nivel de figura puede dar a cada estación un panel con las mismas escalas de ejes.
Función de distribución empírica acumulada
Una función de distribución empírica acumulada da la proporción de valores observados que son menores o iguales a cada umbral posible.
Un valor de ECDF de 0,8 en 40 minutos significa que el 80 % de los tiempos registrados son como máximo de 40 minutos.

G

Gráfico de barras agrupadas
Un gráfico de barras agrupadas coloca series separadas una junto a otra alrededor de cada posición de categoría para poder comparar sus valores.
Desplazar dos conjuntos de barras alrededor de cada mes evita que las series de las estaciones se superpongan.
Gráfico de barras apiladas
Un gráfico de barras apiladas coloca las series sobre bases acumuladas para que cada barra muestre tanto los componentes como un total.
Un segmento de 24 viajes sobre otro de 36 viajes produce una barra apilada de altura total 60.
Gráfico de frecuencias absolutas
Un gráfico de frecuencias absolutas muestra el número de filas de cada categoría sin necesitar una variable numérica de respuesta separada.
Un gráfico de frecuencias absolutas de medios de transporte muestra cuántos viajes registrados utilizaron cada tipo de transporte.
Gráfico de líneas
Un gráfico de líneas une observaciones en el orden proporcionado y permite ver los cambios a lo largo de una variable ordenada.
Ordenar conjuntamente la distancia y la elevación mantiene la línea de una ruta avanzando por el recorrido.
Gráfico vectorial
Un gráfico vectorial almacena formas y trazados que pueden ampliarse sin la pixelación de una imagen de mapa de bits ampliada.
Un gráfico SVG mantiene nítidos su texto y sus líneas vectoriales al cambiar su tamaño para un informe.
Gráficos múltiples en pequeños paneles
Los gráficos múltiples en pequeños paneles repiten el mismo tipo de gráfico para distintos subconjuntos, normalmente con escalas comunes para compararlos.
Un panel de precipitación por estación permite comparar patrones estacionales sin líneas superpuestas.

H

Histograma
Un histograma agrupa mediciones numéricas en intervalos contiguos y utiliza barras para mostrar sus recuentos o frecuencias escaladas.
Un histograma con intervalos de cinco minutos agrupa tiempos de desplazamiento próximos en el mismo intervalo.
Hoja de estilos
Una hoja de estilos es un conjunto con nombre de valores predeterminados de Matplotlib para ajustes visuales como colores, cuadrículas, fuentes y anchos de línea.
Un contexto de estilo aplica una hoja de estilos durante un bloque sin cambiar los gráficos posteriores.

I

Imagen de mapa de bits
Una imagen de mapa de bits almacena una cuadrícula fija de píxeles, por lo que al ampliarla el texto y las líneas pueden verse borrosos.
Una exportación PNG con suficientes píxeles mantiene las etiquetas nítidas en el tamaño de visualización previsto.
Interfaz orientada a objetos
La interfaz orientada a objetos dibuja y personaliza gráficos mediante objetos de figura y de área de trazado con nombre y sus métodos.
Conservar una referencia a cada área de trazado permite que una función de representación etiquete el panel deseado.
Intervalo de confianza
Un intervalo de confianza expresa la incertidumbre de una cantidad estimada mediante un método diseñado para el muestreo repetido.
La banda predeterminada de líneas de seaborn es un intervalo de confianza del 95 % para cada media estimada.

Í

Índice
Un índice etiqueta las filas de un objeto de pandas y proporciona las coordenadas horizontales para su gráfico de líneas predeterminado.
Un índice de fechas permite que un gráfico de líneas de precipitación muestre fechas sin una columna x separada.
Índice de fechas y horas
Un índice de fechas y horas es un índice de pandas de marcas de tiempo que los métodos de representación pueden utilizar para un eje horizontal basado en fechas.
Remuestrear un índice de fechas y horas al inicio de cada mes puede producir un gráfico de medias mensuales.

L

Límite de clase
Un límite de clase es una frontera de un intervalo de histograma que determina qué valores pertenecen a ese intervalo.
Un valor en un límite de clase interno pertenece al intervalo que comienza allí, no al que termina allí.
Límite de detección de valores atípicos
Un límite de detección de valores atípicos es un punto de corte calculado para señalar valores inusuales en un diagrama de caja y bigotes, normalmente a 1,5 IQR de un cuartil.
El límite superior puede quedar entre observaciones, por lo que no tiene por qué ser el extremo del bigote superior.
Límites de la escala de colores
Los límites de la escala de colores establecen los extremos numéricos de un mapa de colores y fijan cómo se asignan los valores a los colores en uno o varios gráficos.
Igualar los límites de la escala de colores hace que un tono de azul represente el mismo valor en dos mapas de calor.
Línea de base
Una línea de base es el valor inicial desde el que se extiende una barra; las barras ordinarias de Matplotlib empiezan en cero salvo que se cambie.
El segundo segmento de una barra apilada utiliza el valor del primer segmento como línea de base.
Línea de referencia
Una línea de referencia marca en un gráfico un valor significativo de una coordenada, como un objetivo, una media o un umbral.
Una línea de referencia vertical en la mediana ayuda a comparar los dos lados de una distribución.

M

Mapa de calor
Un mapa de calor representa una tabla numérica mediante celdas coloreadas, con etiquetas de fila y columna que identifican la posición de cada celda.
Un mapa de calor de estaciones por mes puede revelar una estación lluviosa como una banda de celdas más oscuras.
Mapa de colores divergente
Un mapa de colores divergente utiliza direcciones de color distintas a cada lado de un centro significativo, como el cero.
Un mapa de colores divergente separa las correlaciones negativas de las positivas alrededor de un centro neutro.
Mapa de colores secuencial
Un mapa de colores secuencial ordena los colores de valores bajos a altos, haciendo visibles las magnitudes de una tabla numérica.
Un mapa de colores secuencial es adecuado para recuentos no negativos de visitantes, desde períodos tranquilos hasta períodos concurridos.
Marca de graduación
Una marca de graduación es una posición señalada en un eje de coordenadas; su etiqueta es el texto que describe esa posición.
Los números de los meses pueden tener marcas etiquetadas «Jan», «Feb» y «Mar» sin cambiar sus posiciones.
Matriz de correlaciones
Una matriz de correlaciones es una tabla simétrica de coeficientes de asociación lineal por pares, con valores definidos entre −1 y 1.
Comprueba los diagramas de dispersión junto a una matriz de correlaciones porque los patrones curvos fuertes pueden tener una correlación baja.
Matriz de gráficos por pares
Una matriz de gráficos por pares es una cuadrícula que compara pares de variables numéricas, con la distribución de cada variable en la diagonal.
Limitar una matriz de gráficos por pares a tres variables da nueve paneles antes de eliminar los pares repetidos.
Mosaico de subgráficos
Un mosaico de subgráficos define una distribución con nombres repetidos para los paneles que ocupan varias celdas y devuelve un diccionario de áreas de trazado.
Un mosaico de subgráficos puede colocar un gráfico ancho de tendencias encima de dos gráficos de distribución más pequeños.

N

Normalización por filas
La normalización por filas divide cada entrada entre el total de su fila para que esta represente proporciones que suman uno.
La normalización por filas compara la composición de los medios de transporte entre regiones con distintos números de viajes.

O

Objeto gráfico
Un objeto gráfico es un objeto que dibuja Matplotlib, como una línea, una etiqueta de texto, una colección de marcadores o un rectángulo.
Añadir una línea de referencia crea otro objeto gráfico en el área de trazado existente.

P

Punto atípico fuera de los bigotes
Un punto atípico fuera de los bigotes es una observación dibujada más allá de los bigotes de un diagrama de caja porque queda fuera de la regla de límites elegida.
Un retraso de tráfico real puede aparecer como punto atípico fuera de los bigotes y seguir formando parte de los datos de tiempos de entrega.
Puntos por pulgada
Los puntos por pulgada son una medida que, en una exportación de mapa de bits, convierte las dimensiones físicas de una figura en dimensiones en píxeles.
Una figura de 6 pulgadas de ancho guardada a 200 dpi tiene un ancho de 1200 píxeles antes del recorte ajustado.

R

Rango intercuartílico
El rango intercuartílico es Q3 menos Q1 y mide la dispersión de la mitad central de una muestra numérica ordenada.
Si Q1 es 16 minutos y Q3 es 24 minutos, el rango intercuartílico es 8 minutos.
Recta de regresión
Una recta de regresión es una línea ajustada que resume una relación modelada entre variables numéricas de una muestra.
Una recta de regresión puede pasar por alto un patrón curvo que sigue siendo visible en los puntos.
Referencia a una figura
Una referencia a una figura es una variable de Python que conserva un objeto de figura para editarlo o guardarlo más tarde, incluso después de que pyplot deje de mantenerlo.
Conservar la referencia a la figura permite que una celda posterior del cuaderno guarde el gráfico original en lugar de uno vacío.
Relación de aspecto
La relación de aspecto de una faceta es su ancho dividido entre su altura; multiplicar la altura por la relación de aspecto da el ancho del panel.
Una faceta de 3 pulgadas de alto y relación de aspecto 1,5 tiene un ancho de 4,5 pulgadas.

S

Superposición de puntos o marcas
La superposición de puntos o marcas ocurre cuando las marcas se solapan lo suficiente para ocultar observaciones o dificultar la lectura de zonas densas.
Los marcadores más pequeños y parcialmente transparentes revelan agrupaciones ocultas por la superposición en una muestra grande.

T

Tema
Un tema es un conjunto de valores predeterminados de representación para el estilo, el tamaño del texto y la paleta que afecta a los gráficos creados después.
Establecer un tema de seaborn también cambia el aspecto de los gráficos posteriores de Matplotlib sin seaborn.

Sobre esta unidad

Por StudeliInformar de un error

Crea tus propios Materiales de Estudio

Convierte tus notas, diapositivas y documentos en Guías de Estudio, Preguntas de Práctica, Flashcards y 6 herramientas más.

Comenzar