diff --git a/3-Data-Visualization/10-visualization-distributions/translations/README.es.md b/3-Data-Visualization/10-visualization-distributions/translations/README.es.md index 5849ae8..1d18c7e 100644 --- a/3-Data-Visualization/10-visualization-distributions/translations/README.es.md +++ b/3-Data-Visualization/10-visualization-distributions/translations/README.es.md @@ -6,7 +6,7 @@ En la lección anterior, aprendiste algunos datos interesantes sobre un conjunto de datos acerca de las aves de Minnesota. Encontraste algunos datos erróneos visualizando los valores atípicos y observaste las diferencias entre las categorías de aves según su longitud máxima. -## [Pre-lecture quiz](https://red-water-0103e7a0f.azurestaticapps.net/quiz/18) +## [Cuestionario previo](https://red-water-0103e7a0f.azurestaticapps.net/quiz/18) ## Explora el conjunto de datos sobre aves Otra forma de profundizar en los datos es observar su distribución, o cómo se organizan los datos a lo largo de un eje. Quizás, por ejemplo, te gustaría conocer la distribución general para este conjunto de datos, de la envergadura máxima o la masa corporal máxima de las aves de Minnesota. diff --git a/3-Data-Visualization/11-visualization-proportions/translations/README.es.md b/3-Data-Visualization/11-visualization-proportions/translations/README.es.md index e69de29..4a7976b 100644 --- a/3-Data-Visualization/11-visualization-proportions/translations/README.es.md +++ b/3-Data-Visualization/11-visualization-proportions/translations/README.es.md @@ -0,0 +1,183 @@ +# Visualización de Proporciones + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/11-Visualizing-Proportions.png)| +|:---:| +|Visualización de Proporciones - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +En esta lección, utilizarás un conjunto de datos diferente centrado en la naturaleza para visualizar proporciones, como por ejemplo cuántos tipos diferentes de hongos pueblan un determinado conjunto de datos sobre setas. Vamos a explorar estos fascinantes hongos utilizando un conjunto de datos procedente de Audubon que enumera detalles sobre 23 especies de hongos con branquias de las familias Agaricus y Lepiota. Experimentarás con sabrosas visualizaciones como: + +- Gráficos de tarta 🥧 +- Gráficos de donuts 🍩 +- Gráficos de waffles 🧇 + +> 💡 Un proyecto muy interesante llamado [Charticulator](https://charticulator.com) de Microsoft Research ofrece una interfaz gratuita de arrastrar y soltar para las visualizaciones de datos. ¡En uno de sus tutoriales también utilizan este conjunto de datos de hongos! Así que puedes explorar los datos y aprender la biblioteca al mismo tiempo: [Tutorial de Charticulator](https://charticulator.com/tutorials/tutorial4.html). + +## [Cuestionario previo](https://red-water-0103e7a0f.azurestaticapps.net/quiz/20) + +## Conoce tus hongos 🍄 + +Los hongos son muy interesantes. Vamos a importar un conjunto de datos para estudiarlos: + +```python +import pandas as pd +import matplotlib.pyplot as plt +mushrooms = pd.read_csv('../../data/mushrooms.csv') +mushrooms.head() +``` +Una tabla con grandes datos para su análisis se imprime: + + +| class | cap-shape | cap-surface | cap-color | bruises | odor | gill-attachment | gill-spacing | gill-size | gill-color | stalk-shape | stalk-root | stalk-surface-above-ring | stalk-surface-below-ring | stalk-color-above-ring | stalk-color-below-ring | veil-type | veil-color | ring-number | ring-type | spore-print-color | population | habitat | +| --------- | --------- | ----------- | --------- | ------- | ------- | --------------- | ------------ | --------- | ---------- | ----------- | ---------- | ------------------------ | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| Poisonous | Convex | Smooth | Brown | Bruises | Pungent | Free | Close | Narrow | Black | Enlarging | Equal | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Scattered | Urban | +| Edible | Convex | Smooth | Yellow | Bruises | Almond | Free | Close | Broad | Black | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Brown | Numerous | Grasses | +| Edible | Bell | Smooth | White | Bruises | Anise | Free | Close | Broad | Brown | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Brown | Numerous | Meadows | +| Poisonous | Convex | Scaly | White | Bruises | Pungent | Free | Close | Narrow | Brown | Enlarging | Equal | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Scattered | Urban | + +Enseguida se nota que todos los datos son textuales. Tendrás que convertir estos datos para poder utilizarlos en un gráfico. La mayoría de los datos, de hecho, se representan como un objeto: + +```python +print(mushrooms.select_dtypes(["object"]).columns) +``` + +La salida es: + +```output +Index(['class', 'cap-shape', 'cap-surface', 'cap-color', 'bruises', 'odor', + 'gill-attachment', 'gill-spacing', 'gill-size', 'gill-color', + 'stalk-shape', 'stalk-root', 'stalk-surface-above-ring', + 'stalk-surface-below-ring', 'stalk-color-above-ring', + 'stalk-color-below-ring', 'veil-type', 'veil-color', 'ring-number', + 'ring-type', 'spore-print-color', 'population', 'habitat'], + dtype='object') +``` +Toma estos datos y convierte la columna "class" en una categoría: + +```python +cols = mushrooms.select_dtypes(["object"]).columns +mushrooms[cols] = mushrooms[cols].astype('category') +``` +Ahora, si imprimes los datos de las setas, puedes ver que se han agrupado en categorías según la clase poisonous/edible (venenosa/comestible): + +| | cap-shape | cap-surface | cap-color | bruises | odor | gill-attachment | gill-spacing | gill-size | gill-color | stalk-shape | ... | stalk-surface-below-ring | stalk-color-above-ring | stalk-color-below-ring | veil-type | veil-color | ring-number | ring-type | spore-print-color | population | habitat | +| --------- | --------- | ----------- | --------- | ------- | ---- | --------------- | ------------ | --------- | ---------- | ----------- | --- | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| class | | | | | | | | | | | | | | | | | | | | | | +| Edible | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | ... | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | +| Poisonous | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | ... | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | + +Si sigues el orden presentado en esta tabla para crear tus etiquetas de categoría de clase, puedes construir un gráfico circular: + +## ¡Pastel! + +```python +labels=['Edible','Poisonous'] +plt.pie(edibleclass['population'],labels=labels,autopct='%.1f %%') +plt.title('Edible?') +plt.show() +``` +Voilá, un gráfico circular que muestra las proporciones de estos datos según estas dos clases de hongos. ¡Es bastante importante conseguir el orden de las etiquetas correcto, especialmente aquí, así que asegúrate de verificar el orden con el que se construye la matriz de etiquetas! + +![gráfico de pastel](../images/pie1.png) + +## ¡Donas! + +Algo más interesante desde el punto de vista visual que el gráfico de pastel es el gráfico de donas, que es un gráfico circular con un agujero en el centro. Veamos nuestros datos con este método. + +Observa los distintos hábitats donde crecen las setas: + +```python +habitat=mushrooms.groupby(['habitat']).count() +habitat +``` +Aquí, estás agrupando tus datos por hábitat. Hay 7 listados, así que úsalos como etiquetas para tu gráfico de donas: + +```python +labels=['Grasses','Leaves','Meadows','Paths','Urban','Waste','Wood'] + +plt.pie(habitat['class'], labels=labels, + autopct='%1.1f%%', pctdistance=0.85) + +center_circle = plt.Circle((0, 0), 0.40, fc='white') +fig = plt.gcf() + +fig.gca().add_artist(center_circle) + +plt.title('Mushroom Habitats') + +plt.show() +``` + +![gráfico de donas](../images/donut.png) + +Este código dibuja un gráfico y un círculo central, luego añade ese círculo central en el gráfico. Edite el ancho del círculo central cambiando `0.40` por otro valor. + +Los gráficos de donas pueden ser modificados de varias maneras para cambiar las etiquetas. Las etiquetas, en particular, pueden ser resaltadas para facilitar su lectura. Obtenga más información en los [docs](https://matplotlib.org/stable/gallery/pie_and_polar_charts/pie_and_donut_labels.html?highlight=donut). + +Ahora que sabes cómo agrupar tus datos y mostrarlos como un pastel o una dona, puedes explorar otros tipos de gráficos. Prueba con un gráfico waffle, que es una forma diferente de explorar la cantidad. +## ¡Waffles! + +Un gráfico de tipo "waffle" es una forma diferente de visualizar las cantidades como una matriz 2D de cuadrados. Intenta visualizar las diferentes cantidades de colores de los sombreros de los champiñones en este conjunto de datos. Para hacer esto, necesitas instalar una biblioteca de ayuda llamada [PyWaffle](https://pypi.org/project/pywaffle/) y usar Matplotlib: + +```python +pip install pywaffle +``` + +Seleccione un segmento de sus datos para agrupar: + +```python +capcolor=mushrooms.groupby(['cap-color']).count() +capcolor +``` + +Crea un gráfico de waffles creando etiquetas y luego agrupando los datos: + +```python +import pandas as pd +import matplotlib.pyplot as plt +from pywaffle import Waffle + +data ={'color': ['brown', 'buff', 'cinnamon', 'green', 'pink', 'purple', 'red', 'white', 'yellow'], + 'amount': capcolor['class'] + } + +df = pd.DataFrame(data) + +fig = plt.figure( + FigureClass = Waffle, + rows = 100, + values = df.amount, + labels = list(df.color), + figsize = (30,30), + colors=["brown", "tan", "maroon", "green", "pink", "purple", "red", "whitesmoke", "yellow"], +) +``` + +Utilizando un gráfico de waffles, se pueden ver claramente las proporciones de los colores de los sombreros de este conjunto de datos de hongos. Curiosamente, ¡hay muchas hongos con el sombrero verde! + +![gráfico de waffles](../images/waffle.png) + +✅ Pywaffle soporta iconos dentro de los gráficos que utilizan cualquier icono disponible en [Font Awesome](https://fontawesome.com/). Haz algunos experimentos para crear un gráfico waffle aún más interesante usando iconos en lugar de cuadrados. + +En esta lección, aprendiste tres maneras de visualizar proporciones. En primer lugar, tienes que agrupar tus datos en categorías y luego decidir cuál es la mejor manera de mostrar los datos: pastel, dona o waffle. Todas son deliciosas y gratifican al usuario con una instantánea de un conjunto de datos. + +## 🚀 Desafío + +Intenta recrear estos sabrosos gráficos en [Charticulator](https://charticulator.com). +## [Cuestionario posterior a la clase](https://red-water-0103e7a0f.azurestaticapps.net/quiz/21) + +## Repaso y autoestudio + +A veces no es obvio cuándo utilizar un gráfico de pastel, de dona o de waffle. Aquí hay algunos artículos para leer sobre este tema: + +https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart + +https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce + +https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm + +https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402 + +Investiga un poco para encontrar más información sobre esta decisión pegajosa. +## Asignación + +[Pruébalo en Excel](assignment.es.md) \ No newline at end of file diff --git a/3-Data-Visualization/11-visualization-proportions/translations/assignment.es.md b/3-Data-Visualization/11-visualization-proportions/translations/assignment.es.md new file mode 100644 index 0000000..3648085 --- /dev/null +++ b/3-Data-Visualization/11-visualization-proportions/translations/assignment.es.md @@ -0,0 +1,11 @@ +## Pruébalo en Excel + +## Instrucciones + +¿Sabías que puedes crear gráficos de donas, pastel y waffle en Excel? Utilizando un conjunto de datos de su elección, crea estos tres gráficos directamente en una hoja de cálculo de Excel. + +## Rúbrica + +| Ejemplar | Adecuado | Necesita mejorar +| ------------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------------ | +| Una hoja de cálculo de Excel se presenta con los tres gráficos | Una hoja de cálculo de Excel se presenta con dos gráficos | Una hoja de cálculo de Excel se presenta con un solo gráfico | \ No newline at end of file diff --git a/3-Data-Visualization/12-visualization-relationships/README.md b/3-Data-Visualization/12-visualization-relationships/README.md index e9a5996..e873aed 100644 --- a/3-Data-Visualization/12-visualization-relationships/README.md +++ b/3-Data-Visualization/12-visualization-relationships/README.md @@ -99,7 +99,7 @@ Answer: Yes, with some exceptions around the year 2003: ![line chart 1](images/line1.png) -✅ Because Seaborn is aggregating data around one line, it displays "the multiple measurements at each x value by plotting the mean and the 95% confidence interval around the mean". [source](https://seaborn.pydata.org/tutorial/relational.html). This time-consuming behavior can be disabled by adding `ci=None`. +✅ Because Seaborn is aggregating data around one line, it displays "the multiple measurements at each x value by plotting the mean and the 95% confidence interval around the mean". [Source](https://seaborn.pydata.org/tutorial/relational.html). This time-consuming behavior can be disabled by adding `ci=None`. Question: Well, in 2003 can we also see a spike in the honey supply? What if you look at total production year over year? diff --git a/3-Data-Visualization/12-visualization-relationships/translations/README.es.md b/3-Data-Visualization/12-visualization-relationships/translations/README.es.md index e69de29..02d16e3 100644 --- a/3-Data-Visualization/12-visualization-relationships/translations/README.es.md +++ b/3-Data-Visualization/12-visualization-relationships/translations/README.es.md @@ -0,0 +1,173 @@ +# Visualización de Relaciones: Todo sobre la miel 🍯 + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/12-Visualizing-Relationships.png)| +|:---:| +|Visualización de Relaciones - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +Siguiendo con el enfoque de la naturaleza de nuestra investigación, vamos a descubrir interesantes visualizaciones para mostrar las relaciones entre los distintos tipos de miel, según un conjunto de datos procedentes del [Departamento de Agricultura de Estados Unidos](https://www.nass.usda.gov/About_NASS/index.php). + +Este conjunto de datos, compuesto por unos 600 elementos, muestra la producción de miel en muchos estados de Estados Unidos. Así, por ejemplo, se puede ver el número de colonias, el rendimiento por colonia, la producción total, las existencias, el precio por libra y el valor de la miel producida en un determinado estado entre 1998 y 2012, con una fila por año para cada estado. + +Será interesante visualizar la relación entre la producción de un estado determinado por año y, por ejemplo, el precio de la miel en ese estado. También se podría visualizar la relación entre la producción de miel por colonia de los estados. Este intervalo de años abarca el devastador "CCD" o "Colony Collapse Disorder" que se observó por primera vez en 2006 (http://npic.orst.edu/envir/ccd.html), por lo que es un conjunto de datos conmovedor para estudiar. 🐝 + +## [Cuestionario previo](https://red-water-0103e7a0f.azurestaticapps.net/quiz/22) + +En esta lección, puedes utilizar Seaborn, que ya has utilizado anteriormente, como una buena librería para visualizar las relaciones entre las variables. Es especialmente interesante el uso de la función `relplot` de Seaborn, que permite realizar gráficos de dispersión y de líneas para visualizar rápidamente las '[relaciones estadísticas](https://seaborn.pydata.org/tutorial/relational.html?highlight=relationships)', que permiten al científico de datos comprender mejor cómo se relacionan las variables entre sí. + +## Gráficos de dispersión + +Utiliza un gráfico de dispersión para mostrar cómo ha evolucionado el precio de la miel, año tras año, por estado. Seaborn, utilizando `relplot`, agrupa convenientemente los datos de los estados y muestra puntos de datos tanto categóricos como numéricos. + +Empecemos por importar los datos y Seaborn: + +```python +import pandas as pd +import matplotlib.pyplot as plt +import seaborn as sns +honey = pd.read_csv('../../data/honey.csv') +honey.head() +``` +Observará que los datos de la miel tienen varias columnas interesantes, como el año y el precio por libra. Exploremos estos datos, agrupados por estados de Estados Unidos: + +| state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year | +| ----- | ------ | ----------- | --------- | -------- | ---------- | --------- | ---- | +| AL | 16000 | 71 | 1136000 | 159000 | 0.72 | 818000 | 1998 | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AR | 53000 | 65 | 3445000 | 1688000 | 0.59 | 2033000 | 1998 | +| CA | 450000 | 83 | 37350000 | 12326000 | 0.62 | 23157000 | 1998 | +| CO | 27000 | 72 | 1944000 | 1594000 | 0.7 | 1361000 | 1998 | + + +Crea un gráfico de dispersión básico para mostrar la relación entre el precio por libra de miel y su estado de origen en EE.UU. Haz que el eje `y` sea lo suficientemente alto como para mostrar todos los estados: + +```python +sns.relplot(x="priceperlb", y="state", data=honey, height=15, aspect=.5); +``` +![gráfico de dispersión 1](../images/scatter1.png) + +Ahora, muestra los mismos datos con un esquema de color miel para exponer cómo evoluciona el precio a lo largo de los años. Puedes hacerlo añadiendo un parámetro 'hue' para visualizar el cambio, año tras año: + +> ✅ Aprende más sobre las [paletas de colores que puedes usar en Seaborn](https://seaborn.pydata.org/tutorial/color_palettes.html) - ¡prueba una hermosa combinación de colores del arco iris! + +```python +sns.relplot(x="priceperlb", y="state", hue="year", palette="YlOrBr", data=honey, height=15, aspect=.5); +``` +![gráfico de dispersión 2](../images/scatter2.png) + +Con este cambio de color, se puede ver que obviamente hay una fuerte progresión a lo largo de los años en cuanto al precio de la miel por libra. De hecho, si se observa un conjunto de muestras en los datos para comprobarlo (elige un estado determinado, Arizona por ejemplo) se puede ver un patrón de aumento de precios año tras año, con pocas excepciones: + +| state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year | +| ----- | ------ | ----------- | --------- | ------- | ---------- | --------- | ---- | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AZ | 52000 | 62 | 3224000 | 1548000 | 0.62 | 1999000 | 1999 | +| AZ | 40000 | 59 | 2360000 | 1322000 | 0.73 | 1723000 | 2000 | +| AZ | 43000 | 59 | 2537000 | 1142000 | 0.72 | 1827000 | 2001 | +| AZ | 38000 | 63 | 2394000 | 1197000 | 1.08 | 2586000 | 2002 | +| AZ | 35000 | 72 | 2520000 | 983000 | 1.34 | 3377000 | 2003 | +| AZ | 32000 | 55 | 1760000 | 774000 | 1.11 | 1954000 | 2004 | +| AZ | 36000 | 50 | 1800000 | 720000 | 1.04 | 1872000 | 2005 | +| AZ | 30000 | 65 | 1950000 | 839000 | 0.91 | 1775000 | 2006 | +| AZ | 30000 | 64 | 1920000 | 902000 | 1.26 | 2419000 | 2007 | +| AZ | 25000 | 64 | 1600000 | 336000 | 1.26 | 2016000 | 2008 | +| AZ | 20000 | 52 | 1040000 | 562000 | 1.45 | 1508000 | 2009 | +| AZ | 24000 | 77 | 1848000 | 665000 | 1.52 | 2809000 | 2010 | +| AZ | 23000 | 53 | 1219000 | 427000 | 1.55 | 1889000 | 2011 | +| AZ | 22000 | 46 | 1012000 | 253000 | 1.79 | 1811000 | 2012 | + +Otra forma de visualizar esta progresión es utilizar el tamaño, en lugar del color. Para los usuarios daltónicos, ésta podría ser una mejor opción. Edita tu visualización para mostrar un aumento de precio por un aumento de la circunferencia del punto: + +```python +sns.relplot(x="priceperlb", y="state", size="year", data=honey, height=15, aspect=.5); +``` +Puedes ver que el tamaño de los puntos aumenta gradualmente. + +![gráfico de dispersión 3](../images/scatter3.png) + +¿Se trata de un simple caso de oferta y demanda? Debido a factores como el cambio climático y el colapso de las colonias, ¿hay menos miel disponible para la compra año tras año y, por tanto, el precio aumenta? + +Para descubrir una correlación entre algunas de las variables de este conjunto de datos, exploremos algunos gráficos de líneas. + +## Gráficos de líneas + +Pregunta: ¿Existe un claro aumento del precio de la miel por libra año tras año? Lo más fácil es descubrirlo creando un gráfico de líneas: + +```python +sns.relplot(x="year", y="priceperlb", kind="line", data=honey); +``` +Answer: Yes, with some exceptions around the year 2003: + +![gráfico de líneas 1](../images/line1.png) + +✅ Como Seaborn está agregando datos en torno a una línea, muestra "las múltiples mediciones en cada valor de x trazando la media y el intervalo de confianza del 95% en torno a la media". [Fuente](https://seaborn.pydata.org/tutorial/relational.html). Este comportamiento, que consume mucho tiempo, puede desactivarse añadiendo `ci=None`. + +Pregunta: En 2003, ¿también podemos ver un pico en la oferta de miel? ¿Y si se observa la producción total año tras año? + +```python +sns.relplot(x="year", y="totalprod", kind="line", data=honey); +``` + +![gráfico de líneas 2](../images/line2.png) + +Respuesta: La verdad es que no. Si se observa la producción total, parece haber aumentado en ese año concreto, aunque en general la cantidad de miel que se produce disminuye en esos años. + +Pregunta: En ese caso, ¿qué pudo causar ese repunte del precio de la miel en torno a 2003? + +Para descubrirlo, puedes explorar una cuadrícula de facetas. + +## Cuadrículas de facetas + +Las cuadrículas de facetas toman una faceta de su conjunto de datos (en nuestro caso, puede elegir "año" para evitar que se produzcan demasiadas facetas). Seaborn puede entonces hacer un gráfico para cada una de esas facetas de sus coordenadas x e y elegidas para una comparación visual más fácil. ¿Destaca el año 2003 en este tipo de comparación? + +Cree una cuadrícula de facetas continuando con el uso de `relplot` como recomienda [la documentación de Seaborn](https://seaborn.pydata.org/generated/seaborn.FacetGrid.html?highlight=facetgrid#seaborn.FacetGrid). + +```python +sns.relplot( + data=honey, + x="yieldpercol", y="numcol", + col="year", + col_wrap=3, + kind="line" +``` +En esta visualización, se puede comparar el rendimiento por colonia y el número de colonias año tras año, uno al lado del otro con un ajuste de 3 para las columnas: + +[cuadrícula de facetas](../images/facet.png) + +Para este conjunto de datos, no hay nada que destaque especialmente en cuanto al número de colonias y su rendimiento, año tras año y estado tras estado. ¿Hay alguna forma diferente de buscar una correlación entre estas dos variables? + +## Gráficos de dos líneas + +Prueba con un gráfico multilínea superponiendo dos gráficos de líneas uno encima del otro, utilizando el 'despine' de Seaborn para eliminar sus espinas superiores y derechas, y utilizando `ax.twinx` [derivado de Matplotlib](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.twinx.html). Twinx permite que un gráfico comparta el eje x y muestre dos ejes y. Así, mostrar el rendimiento por colonia y el número de colonias, superpuestos: + +```python +fig, ax = plt.subplots(figsize=(12,6)) +lineplot = sns.lineplot(x=honey['year'], y=honey['numcol'], data=honey, + label = 'Number of bee colonies', legend=False) +sns.despine() +plt.ylabel('# colonies') +plt.title('Honey Production Year over Year'); + +ax2 = ax.twinx() +lineplot2 = sns.lineplot(x=honey['year'], y=honey['yieldpercol'], ax=ax2, color="r", + label ='Yield per colony', legend=False) +sns.despine(right=False) +plt.ylabel('colony yield') +ax.figure.legend(); +``` +![parcelas superpuestas](../images/dual-line.png) + +Aunque no hay nada que salte a la vista en torno al año 2003, nos permite terminar esta lección con una nota un poco más alegre: aunque en general hay un número de colonias en descenso, el número de colonias se está estabilizando aunque su rendimiento por colonia esté disminuyendo. + +¡Vamos, abejas, vamos! + +🐝❤️ +## 🚀 Desafío + +En esta lección, has aprendido un poco más sobre otros usos de los gráficos de dispersión y las cuadrículas de líneas, incluyendo las cuadrículas de facetas. Desafíate a crear una cuadrícula de facetas utilizando un conjunto de datos diferente, tal vez uno que hayas utilizado antes de estas lecciones. Fíjate en el tiempo que se tarda en crearlas y en la necesidad de tener cuidado con el número de cuadrículas que necesitas dibujar utilizando estas técnicas. +## [Cuestionario posterior a la clase](https://red-water-0103e7a0f.azurestaticapps.net/quiz/23) + +## Repaso y autoestudio + +Los gráficos de líneas pueden ser simples o bastante complejos. Lee un poco en la [documentación de Seaborn](https://seaborn.pydata.org/generated/seaborn.lineplot.html) sobre las diversas formas en que puedes construirlos. Intenta mejorar los gráficos de líneas que construiste en esta lección con otros métodos listados en la documentación. +## Asignación + +[Sumérgete en la colmena](assignment.es.md) diff --git a/3-Data-Visualization/12-visualization-relationships/translations/assignment.es.md b/3-Data-Visualization/12-visualization-relationships/translations/assignment.es.md new file mode 100644 index 0000000..c64678b --- /dev/null +++ b/3-Data-Visualization/12-visualization-relationships/translations/assignment.es.md @@ -0,0 +1,11 @@ +# Sumérgete en la colmena + +## Instrucciones + +En esta lección has empezado a estudiar un conjunto de datos sobre las abejas y su producción de miel durante un periodo de tiempo en el que se han producido pérdidas en la población de colonias de abejas en general. Profundiza en este conjunto de datos y construye un cuaderno que pueda contar la historia de la salud de la población de abejas, estado por estado y año por año. ¿Descubres algo interesante en este conjunto de datos? + +## Rúbrica + +| Ejemplar | Adecuado | Necesita mejorar +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| El cuaderno se presenta con una historia anotada con al menos tres gráficos diferentes que muestran aspectos del conjunto de datos, estado sobre estado y año sobre año | El cuaderno carece de uno de estos elementos | El cuaderno carece de dos de estos elementos \ No newline at end of file diff --git a/3-Data-Visualization/13-meaningful-visualizations/translations/README.es.md b/3-Data-Visualization/13-meaningful-visualizations/translations/README.es.md index e69de29..14db2b5 100644 --- a/3-Data-Visualization/13-meaningful-visualizations/translations/README.es.md +++ b/3-Data-Visualization/13-meaningful-visualizations/translations/README.es.md @@ -0,0 +1,167 @@ +# Haciendo visualizaciones significativas + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/13-MeaningfulViz.png)| +|:---:| +| Visualizaciones Significativas - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +> "Si se torturan los datos el tiempo suficiente, confesarán cualquier cosa" -- [Ronald Coase](https://en.wikiquote.org/wiki/Ronald_Coase) + +Una de las habilidades básicas de un científico de datos es la capacidad de crear una visualización de datos significativa que ayude a responder a las preguntas que pueda tener. Antes de visualizar tus datos, tienes que asegurarte de que han sido limpiados y preparados, como hiciste en las lecciones anteriores. Después de eso, puedes empezar a decidir la mejor manera de presentar los datos. + +En esta lección, revisarás: + +1. Cómo elegir el tipo de gráfico adecuado +2. Cómo evitar los gráficos engañosos +3. Cómo trabajar con el color +4. Cómo estilizar los gráficos para que sean legibles +5. Cómo construir soluciones de gráficos animados o en 3D +6. Cómo construir una visualización creativa + +## [Cuestionario previo](https://red-water-0103e7a0f.azurestaticapps.net/quiz/24) + +## Elegir el tipo de gráfico adecuado + +En las lecciones anteriores, has experimentado con la construcción de todo tipo de visualizaciones de datos interesantes utilizando Matplotlib y Seaborn para la elaboración de gráficos. En general, puedes seleccionar el [tipo de gráfico correcto](https://chartio.com/learn/charts/how-to-select-a-data-vizualization/) para la pregunta que estás haciendo usando esta tabla: + +| Debes: | Debes usar: | +| -------------------------- | ------------------------------- | +| Mostrar las tendencias de los datos a lo largo del tiempo | Lineal | +| Comparar categorías | Barras, Pastel | +| Comparar totales | Pastel, Barra apilada | +| Mostrar relaciones | Dispersión, Línea, Faceta, Línea doble | +| Mostrar distribuciones | Dispersión, Histograma, Caja | +| Mostrar proporciones | Patel, Dona, Waffle | + +> ✅ Dependiendo de la composición de tus datos, es posible que tenga que convertirlos de texto a numéricos para conseguir un gráfico determinado que los soporte. + +## Evitar el engaño + +Incluso si un científico de datos tiene cuidado de elegir el gráfico adecuado para los datos correctos, hay muchas maneras en que los datos pueden ser mostrados de una manera para demostrar un punto, a menudo a costa de socavar los propios datos. Hay muchos ejemplos de gráficos e infografías engañosos. + +[![Cómo mienten los gráficos por Alberto Cairo](.././images/tornado.png)](https://www.youtube.com/watch?v=oX74Nge8Wkw "How charts lie") + +> 🎥 Haz clic en la imagen de arriba para ver una conferencia sobre los gráficos engañosos + +Este gráfico invierte el eje X para mostrar lo contrario de la verdad, según la fecha: + +![gráfico malo 1](../images/bad-chart-1.png) + +[Este gráfico](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) es aún más engañoso, ya que la mirada se dirige hacia la derecha para concluir que, con el tiempo, los casos de COVID han disminuido en los distintos condados. De hecho, si se observan detenidamente las fechas, se descubre que han sido reordenadas para dar esa engañosa tendencia a la baja. + +![gráfico malo 2](../images/bad-chart-2.jpg) + +Este ejemplo notorio utiliza el color Y un eje Y invertido para engañar: en lugar de concluir que las muertes por armas de fuego se dispararon después de la aprobación de la legislación favorable a las armas, en realidad se engaña al ojo para que piense lo contrario: + +![gráfico malo 3](../images/bad-chart-3.jpg) + +Este extraño gráfico muestra cómo se puede manipular la proporción, con un efecto hilarante: + +![bad chart 4](../images/bad-chart-4.jpg) + +Comparar lo incomparable es otro truco turbio. Hay un [maravilloso sitio web](https://tylervigen.com/spurious-correlations) que trata sobre "correlaciones falsas" y muestra "hechos" que correlacionan cosas como la tasa de divorcios en Maine y el consumo de margarina. Un grupo de Reddit también recoge los [usos feos](https://www.reddit.com/r/dataisugly/top/?t=all) de los datos. + +Es importante entender lo fácil que es engañar al ojo con gráficos engañosos. Incluso si la intención del científico de datos es buena, la elección de un mal tipo de gráfico, como un gráfico circular que muestre demasiadas categorías, puede ser engañosa. + +## Color + +En el gráfico sobre la violencia con armas de fuego en Florida, ya has visto cómo el color puede proporcionar un nivel adicional de significado a los gráficos, especialmente a los que no están diseñados con bibliotecas como Matplotlib y Seaborn, que vienen con varias bibliotecas y paletas de colores. Si estás haciendo un gráfico a mano, haz un pequeño estudio de la [teoría del color](https://colormatters.com/color-and-design/basic-color-theory) + +> ✅ Al diseñar los gráficos, ten en cuenta que la accesibilidad es un aspecto importante de la visualización. Algunos de sus usuarios pueden ser daltónicos: ¿su gráfico se visualiza bien para los usuarios con problemas de visión? + +Tenga cuidado al elegir los colores de su gráfico, ya que el color puede transmitir un significado que quizá no sea el deseado. Las "damas rosas" del gráfico de "altura" de arriba transmiten un significado claramente "femenino" que se suma a la extrañeza del propio gráfico. + +Mientras que [el significado del color](https://colormatters.com/color-symbolism/the-meanings-of-colors) puede ser diferente en distintas partes del mundo, y tiende a cambiar de significado según su tonalidad. En general, los significados de los colores incluyen: + +| Color | significado | +| ------ | ------------------- | +| rojo | poder +| azul | confianza, lealtad +| amarillo | felicidad, precaución +| verde | ecología, suerte, envidia | +| púrpura | felicidad | +| naranja | vitalidad | + +Si tienes que construir un gráfico con colores personalizados, asegúrese de que tus gráficos sean accesibles y de que el color que elijas coincida con el significado que intentas transmitir. + +## Estilizar los gráficos para que sean legibles + +Los gráficos no tienen sentido si no son legibles. Tómate un momento para considerar el estilo de la anchura y la altura de tu gráfico para que se ajuste a tus datos. Si es necesario mostrar una variable (como los 50 estados), muéstrela verticalmente en el eje Y si es posible, para evitar un gráfico que se desplace horizontalmente. + +Etiqueta tus ejes, proporciona una leyenda si es necesario y ofrece información sobre herramientas para una mejor comprensión de los datos. + +Si tus datos son textuales y verbales en el eje X, puedes inclinar el texto para una mejor legibilidad. [Matplotlib](https://matplotlib.org/stable/tutorials/toolkits/mplot3d.html) ofrece gráficos en 3D, si tus datos lo permiten. Se pueden producir sofisticadas visualizaciones de datos utilizando `mpl_toolkits.mplot3d`. + +![gráficos 3D](../images/3d.png) + +## Animación y visualización de gráficos en 3D + +Algunas de las mejores visualizaciones de datos actuales son animadas. Shirley Wu tiene unas increíbles realizadas con D3, como '[film flowers](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)', donde cada flor es una visualización de una película. Otro ejemplo de The Guardian es 'bussed out', una experiencia interactiva que combina visualizaciones con Greensock y D3 más un formato de artículo de scrollytelling para mostrar cómo la ciudad de Nueva York maneja su problema de los sin techo sacando a la gente de la ciudad en autobús. + +![autobuses](../images/busing.png) + +> "Bussed Out: How America Moves its Homeless" de [the Guardian](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study). Visualizaciones de Nadieh Bremer y Shirley Wu + +Aunque esta lección no es suficiente para profundizar en la enseñanza de estas potentes librerías de visualización, prueba a usar D3 en una aplicación Vue.js utilizando una librería para mostrar una visualización del libro "Dangerous Liaisons" como una red social animada. + +> "Les Liaisons Dangereuses" es una novela epistolar, o una novela presentada como una serie de cartas. Escrita en 1782 por Choderlos de Laclos, narra las viciosas maniobras sociales de dos protagonistas del duelo de la aristocracia francesa de finales del siglo XVIII, el Vizconde de Valmont y la Marquesa de Merteuil. Ambos acaban muriendo, pero no sin causar un gran daño social. La novela se desarrolla como una serie de cartas escritas a varias personas de sus círculos, tramando una venganza o simplemente creando problemas. Crea una visualización de estas cartas para descubrir los principales protagonistas de la narración, de forma visual. + +Completarás una aplicación web que mostrará una vista animada de esta red social. Utiliza una biblioteca construida para crear una [visualización de una red](https://github.com/emiliorizzo/vue-d3-network) utilizando Vue.js y D3. Cuando la aplicación se está ejecutando, se puede tirar de los nodos alrededor de la pantalla para barajar los datos. + +![vinculoa](../images/liaisons.png) + +## Proyecto: Construir un gráfico para mostrar una red usando D3.js + +> Esta carpeta de la lección incluye una carpeta `solution` donde puedes encontrar el proyecto completado, para tu referencia. + +1. Sigue las instrucciones del archivo README.md en la raíz de la carpeta de inicio. Asegúrate de que tienes NPM y Node.js funcionando en tu máquina antes de instalar las dependencias del proyecto. + +2. Abre la carpeta `starter/src`. Descubrirás una carpeta `assets` donde encontrarás un archivo .json con todas las letras de la novela, numeradas, con una anotación 'to' y 'from'. + +3. Completa el código en `components/Nodes.vue` para habilitar la visualización. Busca el método llamado `createLinks()` y añade el siguiente bucle anidado. + +Recorre el objeto .json para capturar los datos "to" y "from" de las letras y construye el objeto `links` para que la librería de visualización pueda consumirlo: + +```javascript +//loop through letters + let f = 0; + let t = 0; + for (var i = 0; i < letters.length; i++) { + for (var j = 0; j < characters.length; j++) { + + if (characters[j] == letters[i].from) { + f = j; + } + if (characters[j] == letters[i].to) { + t = j; + } + } + this.links.push({ sid: f, tid: t }); + } + ``` +¡Ejecuta tu app desde la terminal (npm run serve) y disfruta de la visualización! + +## 🚀 Reto + +Date una vuelta por internet para descubrir visualizaciones engañosas. ¿Cómo engaña el autor al usuario, y, si es intencionado? Intenta corregir las visualizaciones para mostrar cómo deberían ser. + +## [Cuestionario posterior a la clase](https://red-water-0103e7a0f.azurestaticapps.net/quiz/25) + +## Revisión y Autoestudio + +Aquí hay algunos artículos para leer sobre la visualización de datos engañosa: + +https://gizmodo.com/how-to-lie-with-data-visualization-1563576606 + +http://ixd.prattsi.org/2017/12/visual-lies-usability-in-deceptive-data-visualizations/ + +Eche un vistazo a estas interesantes visualizaciones de activos y artefactos históricos: + +https://handbook.pubpub.org/ + +Mira este artículo sobre cómo la animación puedes mejorar tus visualizaciones: + +https://medium.com/@EvanSinar/use-animation-to-supercharge-data-visualization-cd905a882ad4 + +## Asignación + +[Construye tu propia visualización personalizada](assignment.es.md) diff --git a/3-Data-Visualization/13-meaningful-visualizations/translations/assignment.es.md b/3-Data-Visualization/13-meaningful-visualizations/translations/assignment.es.md new file mode 100644 index 0000000..99677c5 --- /dev/null +++ b/3-Data-Visualization/13-meaningful-visualizations/translations/assignment.es.md @@ -0,0 +1,10 @@ +# Construye tu propio vis a medida + +## Instrucciones + +Utilizando el ejemplo de código de este proyecto para crear una red social, maqueta los datos de tus propias interacciones sociales. Podrías mapear tu uso de las redes sociales o hacer un diagrama de los miembros de tu familia. Crea una aplicación web interesante que muestre una visualización única de una red social. +## Rúbrica + +Ejemplar | Adecuado | Necesita mejorar +--- | --- | -- | +Un repo de GitHub se presenta con código que se ejecuta correctamente (intenta desplegarlo como una aplicación web estática) y tiene un README anotado que explica el proyecto | El repo no se ejecuta correctamente o no está bien documentado | El repo no se ejecuta correctamente y no está bien documentado \ No newline at end of file