<jupyter_start><jupyter_text>---**Universidad de Costa Rica** | Escuela de Ingeniería Eléctrica*IE0405 - Modelos Probabilísticos de Señales y Sistemas* `PyX` - Serie de tutoriales de Python para el análisis de datos `Py7` - *Graficación estadística*> La visualización de resultados es fundamental en el análisis de datos. Python tiene librerías complementarias como **Matplotlib** y **Seaborn**, entre otras, que ofrecen herramientas avanzadas para muchos tipos de gráficos comúnmente utilizados en muchos contextos académicos y profesionales.*<NAME>*---  Tipos de gráficosPara empezar, haremos un repaso de tipos de gráficos usuales en estadística y análisis de datos.[Seaborn](https://seaborn.pydata.org/tutorial/function_overview.html) clasifica sus gráficos de la siguiente forma:  Gráficos relacionalesMapeo de la relación entre dos variables en un plano cartesiano.- **Gráfico de dispersión** (*scatter plot*): diagrama que muestra la relación de dos variables como pares ordenados en un plano cartesiano.- **Gráfico de línea** (*line chart, line plot*): diagrama que muestra la relación de dos variables como pares ordenados en un plano cartesiano, conectados por una línea para denotar una sucesión.  Gráficos de distribuciónRepresentación de la distribución de un conjunto de valores a lo largo de un eje.- **Histograma** (*histogram*): diagrama que agrupa valores numéricos dentro de pequeños rangos de valores (*bins*) y que muestra la distribución del número de veces que aparece un valor dentro de cada intervalo, creando una densidad de probabilidad aproximada.- **Gráfico de estimación de densidad kernel** (*KDE plot*): como el histograma, es útil para una estimación de la distribución de ocurrencia de valores muestra, pero mediante la estimación $\hat{f}_h(x)$ de la función de densidad de probabilidad $f_X(x)$, a través de un "[kernel](https://en.wikipedia.org/wiki/Kernel_(statistics))".- **Función de distribución acumulativa empírica** (*ECDF plot*): es una aproximación de la función de distribución acumulativa (CDF) que representa la proporción o conteo de observaciones ubicadas por debajo de cada valor en un conjunto de datos.- **Gráfico de alfombra** (*rug plot*): es una visualización de la distribución marginal de los datos en un eje real, como un gráfico de dispersión unidimensional.  Gráficos categóricosRepresentación de la distribución de un conjunto de valores a lo largo de un eje para distintas variables categóricas.- **Gráfico de franjas** (*strip plot*): es un diagrama de dispersión donde una variable es categórica.- **Gráfico de enjambre** (*swarm plot*): es un diagrama de dispersión donde una variable es categórica, similar a un gráfico de franjas, pero los puntos no se traslapan.- **Gráfico de caja o de caja y bigotes** (*box plot*, *box-and-whisker plot*): es una visualización de grupos de datos categóricos por medio de sus *cuartiles*: el mínimo y el mayor valor son los "bigotes", la mediana es la línea dentro de la caja, y el primer cuartil y tercer cuartil son los bordes de la caja. Siguiendo ciertos criterios se excluyen los valores atípicos (*outliers*), aquí mostrados como puntos.- **Gráfico de violín** (*violin plot*): tiene un rol similar al gráfico de caja en mostrar la distribución de datos numéricos por cuartiles en una categoría, pero lo combina con un gráfico KDE para representar además la distribución de ocurrencias.- **Gráfico de punto** (*point plot*): el punto representa la media (u otro estimador) de los datos de una variable categórica y la línea es un intervalo de confianza para la estimación. Aporta menos información que los gráficos anteriores pero puede ser útil para representar los cambios de las medidas de tendencia central (la media, la mediana o la moda) entre una variable categórica y otra.- **Gráfico de barras** (*bar plot*): muestra una información similar a la del gráfico de punto: la media (u otra medida de tendencia central) y el intervalo de confianza de la estimación, pero la magnitud de la media es una barra. --- SeabornSegún su [página oficial](https://seaborn.pydata.org/),> Seaborn es una biblioteca de visualización de datos de Python basada en Matplotlib y compatible con las estructuras de datos de Pandas. Proporciona una interfaz de alto nivel para dibujar gráficos estadísticos atractivos e informativos.**Nota**: Los aspectos básicos de Matplotlib ya fueron cubiertos en `Py2` y subsiguientes.Con los tipos de gráficos mostrados en la sección anterior, Seaborn tiene la posibilidad de configurar una [gran variedad](https://seaborn.pydata.org/examples/index.html) de alternativas. Aquí mostraremos algunos ejemplos básicos.Seaborn se importa por convención como```pythonimport seaborn as sns```A continuación hay algunos ejemplos utilizando conjuntos de datos incluidos con la librería.<jupyter_code># Import seaborn
import seaborn as sns

# Apply the default theme
sns.set_theme()

# Load an example dataset
tips = sns.load_dataset("tips")

# Create a visualization
sns.relplot(
    data=tips,
    x="total_bill", y="tip", col="time",
    hue="smoker", style="smoker", size="size",
)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.06966335863008367, 'fraction_numerical': 0.0011675423234092236, 'mean_word_length': 5.275946275946276, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 8, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '35509', 'license': 'CC0-1.0', 'n_tokens_mistral': 1593, 'n_tokens_neox': 1610, 'n_words': 710, 'path': 'Py7.ipynb', 'repo_name': 'Bailey0606/python-m', 'size': '5155'}