Saltar al contenido
Gráficos con Plotly y Python

Gráficos de barras, líneas y scatter con Plotly.

Introducción

Plotly es una potente herramienta de visualización de datos en línea que facilita la creación de gráficos interactivos utilizando Python. Con Plotly, puedes generar fácilmente diferentes tipos de gráficos para analizar y visualizar tus datos de manera efectiva.

  1. Gráficos de Barras: Estos gráficos son ideales para comparar datos entre diferentes categorías. Con Plotly, puedes crear barras verticales u horizontales, ajustar colores, agregar etiquetas y personalizar otros aspectos visuales para destacar las diferencias entre categorías.

  2. Gráficos de Líneas: Utilizados para visualizar tendencias a lo largo del tiempo o secuencias ordenadas de datos. Plotly permite ajustar la suavidad de las líneas, agregar puntos de datos, personalizar los ejes y más para representar claramente las variaciones y patrones en los datos a lo largo de series temporales o secuenciales.

  3. Gráficos Scatter (de dispersión): Son perfectos para explorar la relación entre dos variables numéricas. Con Plotly, puedes ajustar el tamaño y color de los puntos, agregar tooltips informativos al pasar el cursor sobre ellos, y crear gráficos con múltiples series o agrupaciones de datos para analizar correlaciones y patrones en tus datos.

Una de las principales ventajas de Plotly es su capacidad para crear gráficos interactivos. Estos gráficos permiten al usuario explorar los datos haciendo zoom, desplazamiento y seleccionando áreas específicas para visualizar detalles adicionales. Además, Plotly ofrece opciones robustas de personalización, lo que te permite ajustar casi todos los aspectos visuales de tus gráficos para adaptarlos a tus necesidades y preferencias específicas.

En resumen, Plotly junto con Python proporciona una solución eficiente y flexible para la visualización de datos, permitiéndote generar rápidamente gráficos elegantes y dinámicos que mejoran la comprensión de tus datos y facilitan la toma de decisiones informadas basadas en análisis visuales detallados.

Resumen

Algunos tipos de gráficos son (barras, líneas y scatter) utilizando Plotly en Python.

Gráficos de barras con Plotly

Los gráficos de barras son ideales para visualizar comparaciones entre diferentes datos. Plotly permite crear gráficos de barras verticales u horizontales y personalizarlos de diversas maneras.

Crear un gráfico de barras verticales

Para crear un gráfico de barras vertical utilizando Plotly, puedes utilizar la función go.Bar() y pasarle como argumentos las etiquetas de cada barra (eje x), y los valores correspondientes (eje y):

import plotly.graph_objs as go
etiquetas = ['manzanas', 'peras', 'naranjas']
valores = [20, 14, 25]
datos = go.Bar(x=etiquetas, y=valores)

Ahora, para visualizar este gráfico, puedes crear una figura y agregar los datos utilizando la función go.Figure():

figura = go.Figure(datos)
figura.show()

Esto mostrará un gráfico de barras verticales en el que cada barra representa una categoría (manzanas, peras y naranjas) y su altura es proporcional al valor correspondiente.

Crear un gráfico de barras horizontales

Para crear un gráfico de barras horizontales, simplemente debes cambiar los argumentos de la función go.Bar():

datos = go.Bar(y=etiquetas, x=valores, orientation='h')

Gráficos de líneas con Plotly

Los gráficos de líneas son ideales para mostrar la evolución de un dato a lo largo del tiempo o de otra variable continua. Para crear un gráfico de líneas en Plotly, puedes utilizar la función go.Scatter() y pasarle como argumentos las etiquetas de cada punto (eje x) y los valores correspondientes (eje y):

import plotly.graph_objs as go
etiquetas = ['enero', 'febrero', 'marzo']
valores = [10, 5, 14]
datos = go.Scatter(x=etiquetas, y=valores, mode='lines+markers')

El argumento mode permite especificar cómo quieres que se muestren los puntos en el gráfico. En este caso, estamos indicando que queremos que los puntos se muestren con líneas y marcadores.

Gráficos de scatter con Plotly

Los gráficos de scatter son ideales para visualizar la relación entre dos variables diferentes. En Plotly, puedes crear un gráfico de scatter utilizando la función go.Scatter() y pasándole las coordenadas de cada punto:

import plotly.graph_objs as go
x = [1, 3, 5, 7]
y = [2, 5, 1, 6]
datos = go.Scatter(x=x, y=y, mode='markers')

También puedes especificar el tipo de marcador utilizando el argumento marker:

datos = go.Scatter(x=x, y=y, mode='markers', marker=dict(size=10, color='red'))

En este caso, estamos indicando que queremos que los marcadores sean de color rojo y de tamaño 10.

¡Listo! Con estas explicaciones podrás generar gráficos de barras, líneas y scatter con Plotly en Python.

Aplicación teórica

Algunos ejemplos:

Gráficos de barras

Supongamos que queremos mostrar la cantidad de ventas de tres productos diferentes durante el mes pasado. Podemos usar un gráfico de barras para representar esta información.

import plotly.graph_objs as go
productos = ["Producto A", "Producto B", "Producto C"]
ventas = [550, 700, 900]
grafico_barras = go.Bar(x=productos, y=ventas)
layout = go.Layout(
    title="Ventas del mes pasado",
    xaxis=dict(title="Producto"),
    yaxis=dict(title="Cantidad de ventas")
)
fig = go.Figure(data=[grafico_barras], layout=layout)
fig.show()

Gráfico de Barras

Gráficos de líneas

Supongamos que queremos mostrar la evolución de la temperatura en una ciudad durante los últimos 7 días. Podemos usar un gráfico de líneas para mostrar esta información.

import plotly.graph_objs as go
import datetime
fechas = [datetime.datetime.now() - datetime.timedelta(days=i) for i in range(7)][::-1]
temperaturas = [28, 26, 25, 23, 21, 20, 19]
grafico_lineas = go.Scatter(x=fechas, y=temperaturas, mode="lines")
layout = go.Layout(
    title="Temperatura en la Ciudad",
    xaxis=dict(title="Fecha"),
    yaxis=dict(title="Temperatura (°C)")
)
fig = go.Figure(data=[grafico_lineas], layout=layout)
fig.show()

Gráfico de Líneas

Gráficos scatter

Supongamos que queremos mostrar la relación entre la edad de un grupo de personas y su estatura. Podemos usar un gráfico "scatter" para mostrar esta relación.

import plotly.graph_objs as go
import random
edades = [random.randint(18, 70) for i in range(50)]
estaturas = [random.randint(150, 200) for i in range(50)]
grafico_scatter = go.Scatter(x=edades, y=estaturas, mode="markers")
layout = go.Layout(
    title="Relación entre edad y estatura",
    xaxis=dict(title="Edad (años)"),
    yaxis=dict(title="Estatura (cm)")
)
fig = go.Figure(data=[grafico_scatter], layout=layout)
fig.show()

Gráfico Scatter

Aplicación práctica

Ejemplos de gráficos de barras, líneas y scatter utilizando Plotly en Python.

Gráfico de Barras

Este es un ejemplo de un simple gráfico de barras con Plotly utilizando datos de muestra:

import plotly.express as px
import pandas as pd

# Crea un dataframe de muestra
df = pd.DataFrame({
    "país": ['México', 'EEUU', 'Canadá', 'Australia', 'Nueva Zelanda'],
    "población": [126200000, 328200000, 37900000, 25800000, 5000000]
})

# Crea una figura de barras utilizando Plotly Express
fig = px.bar(df, x="país", y="población", color="país")

# Muestra el gráfico
fig.show()

Gráfico de Líneas

El siguiente ejemplo muestra un simple gráfico de líneas con Plotly utilizando datos de muestra:

import plotly.graph_objects as go
import pandas as pd

# Crea un dataframe de muestra
df = pd.DataFrame({
    "año": [2015, 2016, 2017, 2018, 2019],
    "ventas": [200000, 300000, 400000, 500000, 600000]
})

# Crea una figura de líneas utilizando Plotly Graph Objects
fig = go.Figure(data=go.Scatter(x=df["año"], y=df["ventas"]))

# Muestra el gráfico
fig.show()

Gráfico de Scatter

El siguiente ejemplo muestra un simple gráfico de scatter con Plotly utilizando datos de muestra:

import plotly.express as px
import pandas as pd

# Crea un dataframe de muestra
df = pd.DataFrame({
    "x": [1, 2, 3, 4, 5],
    "y": [5, 4, 3, 2, 1]
})

# Crea una figura de scatter utilizando Plotly Express
fig = px.scatter(df, x="x", y="y")

# Muestra el gráfico
fig.show()