Leyenda en plotly

Plotly agrega una leyenda automáticamente cuando los datos están agrupados, por ejemplo con el argumento color de Plotly Express. La leyenda es interactiva: haz clic en un elemento para ocultar ese grupo y doble clic para aislarlo. Su aspecto se personaliza con fig.update_layout.

Leyenda por defecto

import plotly.express as px

df = px.data.iris()

fig = px.scatter(df, x = "sepal_width", y = "sepal_length",
                 color = "species")

fig.show()

Posición de la leyenda

La posición de la leyenda se establece con legend_x y legend_y en coordenadas normalizadas, donde (0, 0) es la esquina inferior izquierda del gráfico y (1, 1) la esquina superior derecha. legend_xanchor y legend_yanchor indican qué parte de la leyenda se coloca en esas coordenadas.

import plotly.express as px

df = px.data.iris()

fig = px.scatter(df, x = "sepal_width", y = "sepal_length", color = "species")

fig.update_layout(legend = dict(x = 0.99, y = 0.01,
                                xanchor = "right", yanchor = "bottom"))

fig.show()

Leyenda horizontal

Con orientation = "h" los elementos se muestran en horizontal, lo que es muy útil para colocar la leyenda encima o debajo del gráfico y dejar más espacio para los datos.

import plotly.express as px

df = px.data.iris()

fig = px.scatter(df, x = "sepal_width", y = "sepal_length", color = "species")

fig.update_layout(legend = dict(orientation = "h",
                                x = 0, y = 1.02, yanchor = "bottom",
                                font = dict(size = 14)))

fig.show()

Título de la leyenda

Por defecto el título es el nombre de la columna de agrupación. Cámbialo con legend_title_text o elimínalo con una cadena vacía.

import plotly.express as px

df = px.data.iris()

fig = px.scatter(df, x = "sepal_width", y = "sepal_length", color = "species")

fig.update_layout(legend_title_text = "Especies")

fig.show()

Fuente, fondo y borde

Utiliza font para cambiar el texto de la leyenda y bgcolor, bordercolor y borderwidth para personalizar su caja.

import plotly.express as px

df = px.data.iris()

fig = px.scatter(df, x = "sepal_width", y = "sepal_length", color = "species")

fig.update_layout(legend = dict(font = dict(size = 14, color = "black"),
                                bgcolor = "lightyellow",
                                bordercolor = "gray", borderwidth = 1))

fig.show()

Ocultar la leyenda

Establece showlegend = False en update_layout para eliminar toda la leyenda. Para ocultar solo una serie utiliza showlegend = False en esa traza, por ejemplo con fig.update_traces(showlegend = False, selector = dict(name = "setosa")).

import plotly.express as px

df = px.data.iris()

fig = px.scatter(df, x = "sepal_width", y = "sepal_length", color = "species")

fig.update_layout(showlegend = False)

fig.show()

Si los colores representan una variable numérica plotly muestra una barra de color en lugar de una leyenda. Consulta las escalas de color de plotly para cambiar sus colores.

Fundamentals of Data Visualization

A Primer on Making Informative and Compelling Figures

Comprar en Amazon
Better Data Visualizations

A Guide for Scholars, Researchers, and Wonks

Comprar en Amazon

También te puede interesar