Saltar al contenido
Gráficos con Plotly y Python

Personalizando gráficos con Plotly.

Introducción

Plotly es una biblioteca de gráficos interactiva que ofrece a los usuarios la capacidad de crear visualizaciones personalizadas y dinámicas para sus datos. Con Plotly, los usuarios pueden generar una amplia variedad de gráficos, desde simples gráficos de barras hasta mapas 3D complejos, adaptados a sus necesidades específicas.

Una de las características destacadas de Plotly es su capacidad de personalización extensa. Los usuarios pueden ajustar diversos aspectos visuales de sus gráficos, como fuentes, colores, tamaños de letra y estilos, permitiéndoles adaptar los gráficos a la identidad visual de su marca o simplemente para crear visualizaciones únicas y atractivas. Además, Plotly facilita la inclusión de anotaciones, títulos y leyendas, lo cual mejora la informatividad y la claridad de los gráficos.

Plotly también es conocido por su capacidad de integración de widgets interactivos. Estos widgets permiten a los usuarios explorar y manipular los datos en tiempo real directamente desde la visualización, lo que es particularmente útil para presentar resultados que requieren análisis dinámicos y actualizaciones en tiempo real.

En resumen, Plotly es una herramienta completa y flexible que no solo facilita la creación de visualizaciones interactivas y personalizadas, sino que también mejora significativamente la comprensión y la presentación de datos complejos mediante su capacidad de personalización y su soporte para la interactividad en tiempo real.

Resumen

En Plotly podemos personalizar nuestros gráficos de varias maneras, incluyendo:

  1. Cambiar el título y los nombres de ejes: Podemos establecer el título y los nombres de los ejes con los métodos title, xaxis_title y yaxis_title respectivamente. Por ejemplo:
    import plotly.graph_objects as go
    fig = go.Figure(data=go.Scatter(x=[1, 2, 3], y=[3, 1, 2]))
    fig.update_layout(
        title="Mi gráfico personalizado",
        xaxis_title="Eje X",
        yaxis_title="Eje Y"
    )
    fig.show()
  2. Cambiar el color y grosor de las líneas: Podemos establecer el color de las líneas con el argumento line_color y el grosor con el argumento line_width. Por ejemplo:
    import plotly.graph_objects as go
    fig = go.Figure(data=go.Scatter(x=[1, 2, 3], y=[3, 1, 2], line_color='red', line_width=3))
    fig.show()
  3. Agregar marcadores: Podemos agregar marcadores en los puntos de nuestro gráfico con el argumento mode. Por ejemplo, si queremos agregar círculos en cada punto, podemos establecer mode='markers'. Además, podemos personalizar el tamaño y color de los marcadores con marker_size y marker_color. Por ejemplo:
    import plotly.graph_objects as go
    fig = go.Figure(data=go.Scatter(x=[1, 2, 3], y=[3, 1, 2], mode='markers', marker_size=10, marker_color='green'))
    fig.show()
  4. Cambiar el estilo de la línea: Podemos establecer el estilo de la línea con el argumento line_dash. Por ejemplo, si queremos una línea punteada, podemos establecer line_dash='dash'.
    import plotly.graph_objects as go
    fig = go.Figure(data=go.Scatter(x=[1, 2, 3], y=[3, 1, 2], line_dash='dash'))
    fig.show()
  5. Agregar texto y anotaciones: Podemos agregar texto y anotaciones en nuestro gráfico con el método update_layout y los métodos add_shape, add_line y add_annotation. Por ejemplo, si queremos agregar un texto en una posición específica, podemos hacer lo siguiente:
    import plotly.graph_objects as go
    fig = go.Figure(data=go.Scatter(x=[1, 2, 3], y=[3, 1, 2]))
    fig.update_layout(
        annotations=[
            dict(
                x=2, y=2, xref="x", yref="y",
                text="Mi anotación personalizada",
                showarrow=True, arrowhead=1, ax=0, ay=-40
            )
        ]
    )
    fig.show()

Estas son solo algunas de las formas en las que podemos personalizar nuestros gráficos en Plotly. Hay muchas otras opciones disponibles, por lo que vale la pena revisar la documentación oficial para obtener más información. ¡Diviértete personalizando tus gráficos!

Aplicación teórica

Un ejemplo práctico de cómo personalizar un gráfico con Plotly:

Supongamos que tienes un conjunto de datos con la cantidad de ventas de una empresa durante varios meses del año y quieres mostrarlos en un gráfico de barras en Plotly. Lo primero que haces es crear una figura de barras con los datos:

import plotly.graph_objs as go
datos = [120000, 90000, 150000, 80000, 110000, 95000]
ventas = go.Bar(x=['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio'], y=datos)
fig = go.Figure(data=[ventas])
fig.show()

Este código mostrará un gráfico de barras simple con los datos proporcionados. Ahora, si deseas personalizar el gráfico, puedes agregar más detalles, como cambiar el color de las barras, agregar un título y etiquetas a los ejes, y cambiar el tamaño de la figura. Aquí te muestro cómo personalizar el gráfico:

import plotly.graph_objs as go
datos = [120000, 90000, 150000, 80000, 110000, 95000]
ventas = go.Bar(x=['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio'], y=datos, marker=dict(color=['#1f77b4','#ff7f0e','#2ca02c','#d62728','#9467bd','#8c564b']))
layout = go.Layout(title='Ventas por mes', xaxis=dict(title='Meses'), yaxis=dict(title='Ventas'))
fig = go.Figure(data=[ventas], layout=layout)
fig.update_layout(autosize=False, width=800, height=500)
fig.show()

En este código, personalizamos el gráfico de la siguiente manera:

  • Agregamos el color de las barras y los meses en una lista como argumento "color" en "marker".
  • Agregamos un título al gráfico y etiquetas a los ejes en "layout".
  • Definimos un tamaño personalizado para el gráfico ajustando los valores de "autosize", "width" y "height" en "update_layout".

Esta es solo una forma de personalizar gráficos con Plotly, existen muchas otras opciones y combinaciones que se pueden hacer para crear gráficos únicos y llamativos para cualquier conjunto de datos.

Aplicación práctica

Un ejemplo práctico de personalización de gráficos con Plotly en Python:

Supongamos que queremos crear un gráfico de barras horizontal que muestre la cantidad de ventas de tres productos diferentes en un período de tiempo determinado. Además, queremos personalizar el color de las barras y agregar un título y etiquetas de ejes.

Primero, necesitamos importar las librerías de Plotly y pandas:

import plotly.express as px
import pandas as pd

Luego, creamos un DataFrame con los datos de ventas:

data = {'producto': ['A', 'B', 'C'], 'ventas': [25000, 19000, 31000], 'fecha': ['2021-01-01', '2021-02-01', '2021-03-01']}
df = pd.DataFrame(data)

Ahora, utilizamos la función px.bar() de Plotly para crear el gráfico de barras y personalizarlo. En este caso, establecemos el color de las barras con el parámetro color_discrete_sequence y agregamos un título y etiquetas de ejes con los parámetros title, x_title e y_title:

fig = px.bar(df, x='ventas', y='producto', orientation='h', color_discrete_sequence=['#2a9d8f'], title='Ventas de productos en el primer trimestre de 2021')
fig.update_xaxes(title='Ventas')
fig.update_yaxes(title='Producto')
fig.show()

¡Y listo! Con estos simples pasos hemos personalizado nuestro gráfico de barras horizontal en Plotly.