NumPy

1

Análisis de Datos con NumPy y Pandas en Python

2

Manipulación de Dimensiones en Arrays NumPy para Ciencia de Datos

3

Manipulación de Arrays NumPy para Análisis de Datos en Python

4

Álgebra Lineal Aplicada con NumPy: Operaciones y Ejemplos Prácticos

5

Indexación y Slicing en NumPy para Análisis de Datos

6

Operaciones con Arrays en NumPy: Broadcasting, Concatenación y Más

7

Identificación y conteo de respuestas únicas con NumPy

8

Manipulación de Matrices y Arrays en NumPy: Transponer, Invertir y Aplanar

9

Análisis de Ventas Mensuales con NumPy: Transformaciones y Insights

10

Operaciones de Álgebra Lineal con NumPy en Python

11

Conexión de NumPy con Pandas y Matplotlib para Análisis de Datos

Pandas

12

Análisis de Datos con Pandas: Carga y Exploración de DataFrames

13

Creación de DataFrames con Pandas en Python

14

Análisis de Datos con Pandas: Series y DataFrames en RetailData

15

Selección de Datos en Pandas: Uso de iLoc y loc

16

Manejo de Datos Faltantes en Pandas: Identificación y Tratamiento

17

Transformaciones y Manipulación de Datos con Pandas en Python

18

Análisis de Ventas con Pandas: Agrupaciones y Estadísticas

19

Filtrado de Datos en Pandas para Análisis Efectivo

20

Creación y manejo de Pivot Tables en pandas

21

Fusión de DataFrames con Pandas: merge, concat y join

22

Análisis de Series Temporales en Ventas Retail

Matplotlib

23

Gráficos Básicos en Python con Matplotlib: Líneas y Dispersión

24

Personalización Avanzada de Gráficos en Matplotlib

25

Creación y Personalización de Gráficos con Matplotlib

26

Creación y personalización de histogramas y boxplots con Matplotlib

27

Visualización de Series Temporales con Python: Matplotlib y Pandas

28

Creación de Gráficos Combinados en Matplotlib con GridSpec

Proyecto de Análisis de Datos de Retail

29

Análisis de Datos con NumPy, Pandas y Matplotlib: Portafolio Final

30

Transformaciones de Datos para Análisis en Pandas

31

Visualización de Datos con Matplotlib: Gráficos de Barras y Pastel

32

Análisis de Datos con NumPy y Pandas en Proyectos Reales

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Creación de Gráficos Combinados en Matplotlib con GridSpec

28/32
Recursos

En Matplotlib, tienes múltiples opciones para especificar colores en tus gráficos. Los colores son una parte esencial para personalizar y mejorar la visualización de tus datos. Puedes definir colores de varias maneras, como utilizando nombres de colores predefinidos, códigos hexadecimales, cadenas de caracteres para colores básicos, y más.

1. Nombres de Colores Predefinidos

Matplotlib soporta una amplia gama de nombres de colores que puedes utilizar directamente en tus gráficos. Algunos ejemplos incluyen:

  • 'red'
  • 'blue'
  • 'green'
  • 'cyan'
  • 'magenta'
  • 'yellow'
  • 'black'
  • 'white'
  • 'gray'

2. Códigos Hexadecimales

Otra forma común de especificar colores es mediante códigos hexadecimales, similares a los que se usan en HTML/CSS. Por ejemplo:

  • '#FF5733' (un tono de naranja)
  • '#33FF57' (un tono de verde)
  • '#3357FF' (un tono de azul)

3. Cadenas Cortas para Colores Básicos

Matplotlib permite el uso de cadenas de un solo carácter para representar algunos colores básicos:

  • 'r' para rojo
  • 'g' para verde
  • 'b' para azul
  • 'c' para cian
  • 'm' para magenta
  • 'y' para amarillo
  • 'k' para negro
  • 'w' para blanco

4. Escalas de Grises

Puedes especificar una escala de grises utilizando una cadena que contenga un número entre 0 y 1 (por ejemplo, '0.75' para un gris medio).

5. Mapas de Colores (Colormaps)

Matplotlib también soporta “colormaps”, que son colecciones de colores utilizadas para representar datos que varían continuamente, como viridis, plasma, inferno, cividis, etc.

Para ver la lista completa de colores predefinidos, códigos hexadecimales y más opciones, puedes consultar la documentación oficial de Matplotlib:

  • Documentación de Colores en Matplotlib
  • Lista de Colores Predefinidos
  • Colormaps en Matplotlib

Matplotlib ofrece una gran flexibilidad para personalizar los colores en tus gráficos, lo que te permite mejorar la claridad y el impacto visual de tus visualizaciones.

Aprovechar estas opciones de color no solo enriquece la presentación de los datos, sino que también facilita la comunicación de información compleja de manera más efectiva.

Aportes 11

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Los \*\*subplots\*\* y \*\*layouts avanzados\*\* en Matplotlib permiten crear gráficos complejos organizados en varias filas y columnas, lo que es especialmente útil cuando necesitas visualizar diferentes variables o aspectos de los datos en un solo lienzo. Aquí te mostraré cómo crear subplots y ajustar su diseño de forma eficiente. \### 1. \*\*Creación de Subplots Básicos\*\* El método `plt.subplot()` o `plt.subplots()` es la base para crear múltiples gráficos en una sola figura. \#### Ejemplo básico: ```python import matplotlib.pyplot as plt import numpy as np \# Datos de ejemplo x = np.linspace(0, 10, 100) y1 = np.sin(x) y2 = np.cos(x) \# Crear una figura con dos subplots (1 fila, 2 columnas) fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5)) \# Gráfico 1: Seno ax1.plot(x, y1, 'r') ax1.set\_title("Seno") \# Gráfico 2: Coseno ax2.plot(x, y2, 'b') ax2.set\_title("Coseno") plt.show() ``` \### 2. \*\*Personalización de los Subplots\*\* \#### Títulos, etiquetas y leyendas: Cada subplot es un eje individual que se puede personalizar de manera independiente. ```python fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5)) \# Gráfico 1: Seno ax1.plot(x, y1, 'r') ax1.set\_title("Seno") ax1.set\_xlabel("Tiempo") ax1.set\_ylabel("Amplitud") \# Gráfico 2: Coseno ax2.plot(x, y2, 'b') ax2.set\_title("Coseno") ax2.set\_xlabel("Tiempo") ax2.set\_ylabel("Amplitud") plt.show() ``` \### 3. \*\*Ajuste del Espaciado entre Subplots\*\* Cuando los gráficos están muy juntos, puedes ajustar el espaciado entre ellos con `plt.subplots\_adjust()`. \#### Ejemplo: ```python fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5)) \# Agregar los gráficos ax1.plot(x, y1, 'r') ax2.plot(x, y2, 'b') \# Ajustar el espaciado plt.subplots\_adjust(wspace=0.3) # Aumentar el espacio horizontal entre subplots plt.show() ``` \### 4. \*\*Crear Subplots con Diferentes Tamaños (GridSpec)\*\* `GridSpec` permite crear layouts complejos donde cada subplot puede ocupar un número variable de filas o columnas. \#### Ejemplo con GridSpec: ```python import matplotlib.gridspec as gridspec \# Crear una figura fig = plt.figure(figsize=(10, 7)) \# Definir el layout con GridSpec gs = gridspec.GridSpec(2, 2, height\_ratios=\[2, 1], width\_ratios=\[1, 2]) \# Crear los subplots ax1 = fig.add\_subplot(gs\[0, 0]) # Ocupa la primera fila y primera columna ax2 = fig.add\_subplot(gs\[0, 1]) # Ocupa la primera fila y segunda columna ax3 = fig.add\_subplot(gs\[1, :]) # Ocupa toda la segunda fila \# Agregar gráficos ax1.plot(x, y1, 'r') ax1.set\_title("Seno") ax2.plot(x, y2, 'g') ax2.set\_title("Coseno") ax3.plot(x, y1 + y2, 'b') ax3.set\_title("Suma de Seno y Coseno") plt.tight\_layout() # Ajusta los márgenes de los subplots plt.show() ``` \### 5. \*\*Compartir Ejes entre Subplots\*\* A veces, es útil que varios subplots compartan los mismos ejes, especialmente cuando quieres comparar gráficos que tienen la misma escala. \#### Ejemplo con ejes compartidos: ```python fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5), sharey=True) \# Gráfico 1: Seno ax1.plot(x, y1, 'r') ax1.set\_title("Seno") \# Gráfico 2: Coseno ax2.plot(x, y2, 'b') ax2.set\_title("Coseno") \# Ambos subplots compartirán el mismo eje Y plt.show() ``` \### 6. \*\*Layouts Complejos usando `plt.subplot2grid()`\*\* Otra manera de manejar subplots complejos es usando `subplot2grid()`, lo que te permite colocar subplots en posiciones específicas dentro de una cuadrícula flexible. \#### Ejemplo: ```python fig = plt.figure(figsize=(10, 7)) \# Crear los subplots con posiciones específicas en una cuadrícula 3x3 ax1 = plt.subplot2grid((3, 3), (0, 0), colspan=2) # Primer subplot abarca 2 columnas ax2 = plt.subplot2grid((3, 3), (0, 2)) # Segundo subplot en la tercera columna ax3 = plt.subplot2grid((3, 3), (1, 0), colspan=3) # Tercer subplot abarca toda la segunda fila ax4 = plt.subplot2grid((3, 3), (2, 0), colspan=3) # Cuarto subplot en la última fila \# Agregar gráficos ax1.plot(x, y1, 'r') ax1.set\_title("Seno") ax2.plot(x, y2, 'g') ax2.set\_title("Coseno") ax3.plot(x, y1 + y2, 'b') ax3.set\_title("Suma de Seno y Coseno") ax4.plot(x, y1 - y2, 'purple') ax4.set\_title("Diferencia entre Seno y Coseno") plt.tight\_layout() plt.show() ``` \### 7. \*\*Uso de `plt.tight\_layout()` y `plt.constrained\_layout()`\*\* `tight\_layout()` y `constrained\_layout()` son útiles para ajustar los márgenes entre subplots automáticamente, asegurándose de que las etiquetas y títulos no se superpongan. \#### Ejemplo: ```python fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(12, 4)) \# Agregar gráficos ax1.plot(x, y1, 'r') ax2.plot(x, y2, 'g') ax3.plot(x, y1 + y2, 'b') \# Ajustar automáticamente los márgenes plt.tight\_layout() # o plt.constrained\_layout() plt.show() ``` \### Resumen: \- \*\*Subplots\*\*: Se usan para organizar gráficos en una sola figura, ideal para comparar datos. \- \*\*GridSpec\*\* y \*\*subplot2grid\*\*: Permiten mayor control sobre el diseño de los subplots. \- \*\*Compartir ejes\*\*: Ayuda a mejorar la comparación entre gráficos. \- \*\*Ajustar layouts\*\*: Usa `tight\_layout()` o `constrained\_layout()` para evitar solapamientos entre gráficos. Estos métodos te permitirán realizar visualizaciones más organizadas y profesionales usando subplots y layouts avanzados en Matplotlib.
**EN RESUMEN:** * **Subplots** permiten organizar múltiples gráficos en una sola figura para facilitar la comparación. * **Layouts avanzados** ofrecen una mayor flexibilidad en la disposición de los gráficos, permitiendo diseños personalizados y complejos para una visualización más efectiva.
![](https://static.platzi.com/media/user_upload/image-ada48ca7-df69-41c5-862a-64faae93adae.jpg)
***Ejemplo:*** ![](https://static.platzi.com/media/user_upload/image-ee093b62-ff89-45d3-995b-f7483581892f.jpg)
🟢 **Qué es Figure y Axes** `figure` es el término general que se usa para referirse al objeto `Figure` en Matplotlib, que es el contenedor de todos los subgráficos y otros elementos gráficos. `axes` es el objeto `Axes` que representa el área del gráfico dentro de la figura. ![](https://static.platzi.com/media/user_upload/image-54535cd6-1f8e-49a8-b3cc-a22b6cbb25e3.jpg) **¡Nunca pares de aprender!** 🚀🚀
**SUBPLOTS** * **Qué son:** Los subplots son múltiples gráficos (o ejes) que se muestran en una sola figura o ventana en una visualización. Permiten colocar varios gráficos en una sola imagen, organizados en una cuadrícula. * **Para qué sirven:** Son útiles para comparar diferentes conjuntos de datos o diferentes visualizaciones en un solo marco. Esto facilita la comparación directa de resultados y la organización de gráficos relacionados. Por ejemplo, podrías usar subplots para mostrar diferentes métricas de rendimiento en una misma visual
**LAYOUTS AVANZADOS** * **Qué son:** Los layouts avanzados se refieren a configuraciones más complejas de subplots que permiten personalizar la disposición y el tamaño de cada subplot dentro de una figura. Esto incluye configuraciones como el uso de grids con diferentes tamaños de filas y columnas, o la integración de gráficos con diferentes dimensiones o proporciones. * **Para qué sirven:** Permiten una mayor flexibilidad y control en la disposición de múltiples gráficos. Puedes ajustar el espacio entre subplots, combinar gráficos de diferentes tipos, o ajustar el tamaño y posición de cada gráfico según sea necesario. Esto es especialmente útil cuando se necesitan diseños complejos o cuando se quiere mostrar información en una disposición específica para mejorar la claridad y el impacto visual.
Mi layout de las últimas gráficas relizadas (espero mejorar su estetica pronto) ```js # Colocar los tres ultimos datos en un gridspec import matplotlib.gridspec as gridspec gs = gridspec.GridSpec(2,2, height_ratios=[2,1] ,width_ratios=[1,1]) fig = plt.figure(figsize=(10,8)) #primera piechart labels = ['Devoluciones','Ventas'] sizes = [total_returns, total_sales] colors = ['#ff9999', '#66b3ff'] pie1 = fig.add_subplot(gs[0,:]) pie1.pie(sizes, labels = labels, colors = colors, autopct = '%1.1f%%', startangle =45) pie1.axis('equal') pie1.set_title('Ventas vs Devoluciones') #distribuicon de ventas por mes y año dis1 = fig.add_subplot(gs[1,1]) data_cleaned.groupby(['Year', 'Month'])['TotalAmount'].sum().plot(kind = 'bar', ax = dis1) dis1.set_xlabel('Year, Month') dis1.set_ylabel('Total Sales') dis1.set_title('Total Sales by Year and Month') # top 10 más vendidos top_10_products = data_cleaned.groupby('StockCode')['Quantity'].sum().sort_values(ascending = False).head(10) top_10_products = top_10_products.reset_index() top_10_products = pd.merge(top_10_products, data_cleaned[['StockCode', 'Description']].drop_duplicates(), on = 'StockCode', how = 'left') top = fig.add_subplot(gs[1,0]) top.barh(top_10_products['Description'], top_10_products['Quantity'], color = 'blue') top.set_xlabel('Quantity') top.set_ylabel('Product Description') top.set_title('Top 10 Most Sold Products') ``` ![](https://static.platzi.com/media/user_upload/download-dc55db0a-690c-4b59-95a4-2bb8147d9216.jpg)
![](</Users/nachorobles/Library/Application Support/CleanShot/media/media_91AM8yh2dg/CleanShot 2024-12-26 at 17.16.25.png>)Aqui está mi aporte. Primero intenté hacer un gráfico tipo 'Pie', pero cómo se dice en mi país "me quedó grande el poncho" jajaja
Alguien sabe como hacer que los títulos de cada gráfico se muestren? En el video solo se ve el título principal. En mi caso me parece que tengo un error en esta parte.
Para crear múltiples gráficos en una sola figura utilizando Matplotlib y GridSpec, aquí tienes el código con comentarios explicativos: ```python import numpy as np import matplotlib.pyplot as plt from matplotlib.gridspec import GridSpec # Generar un conjunto de datos x = np.linspace(0, 10, 100) # Crear un array de 100 puntos entre 0 y 10 y_seno = np.sin(x) # Calcular el seno de cada punto en x datos_histograma = np.random.randn(100) # Generar 100 números aleatorios # Crear una figura y definir la cuadrícula fig = plt.figure(figsize=(10, 8)) # Tamaño de la figura gs = GridSpec(2, 2) # Grid de 2 filas y 2 columnas # Primer subplot: gráfico de seno ax1 = fig.add_subplot(gs[0, :]) # Ocupa la primera fila ax1.plot(x, y_seno, color='blue') # Graficar el seno ax1.set_title('Gráfico de Seno') # Título del gráfico # Segundo subplot: histograma ax2 = fig.add_subplot(gs[1, 0]) # Ocupa la esquina inferior izquierda ax2.hist(datos_histograma, bins=20, color='purple') # Crear histograma ax2.set_title('Histograma') # Título del histograma # Tercer subplot: gráfico de dispersión ax3 = fig.add_subplot(gs[1, 1]) # Ocupa la esquina inferior derecha ax3.scatter(x, y_seno, color='red') # Graficar dispersión ax3.set_title('Dispersión de Seno') # Título del gráfico de dispersión # Ajustar el layout y mostrar la figura plt.tight_layout() # Ajustar layout para evitar superposiciones plt.show() # Mostrar la figura ``` Este código te permite visualizar tres tipos diferentes de gráficos en una sola figura utilizando Matplotlib.