Compondo legendas personalizadas #

Compondo legendas personalizadas peça por peça.

Observação

Para obter mais informações sobre como criar e personalizar legendas, consulte as seguintes páginas:

Às vezes, você não deseja uma legenda explicitamente vinculada aos dados que você plotou. Por exemplo, digamos que você plotou 10 linhas, mas não deseja que um item de legenda apareça para cada uma. Se você simplesmente traçar as linhas e chamar ax.legend(), obterá o seguinte:

import matplotlib as mpl
from matplotlib import cycler
import matplotlib.pyplot as plt
import numpy as np

# Fixing random state for reproducibility
np.random.seed(19680801)

N = 10
data = (np.geomspace(1, 10, 100) + np.random.randn(N, 100)).T
cmap = plt.cm.coolwarm
mpl.rcParams['axes.prop_cycle'] = cycler(color=cmap(np.linspace(0, 1, N)))

fig, ax = plt.subplots()
lines = ax.plot(data)
ax.legend()
legendas personalizadas
No artists with labels found to put in legend.  Note that artists whose label start with an underscore are ignored when legend() is called with no argument.

<matplotlib.legend.Legend object at 0x7f2cf9d80c40>

Observe que nenhuma entrada de legenda foi criada. Nesse caso, podemos compor uma legenda usando objetos Matplotlib que não estão vinculados explicitamente aos dados que foram plotados. Por exemplo:

from matplotlib.lines import Line2D
custom_lines = [Line2D([0], [0], color=cmap(0.), lw=4),
                Line2D([0], [0], color=cmap(.5), lw=4),
                Line2D([0], [0], color=cmap(1.), lw=4)]

fig, ax = plt.subplots()
lines = ax.plot(data)
ax.legend(custom_lines, ['Cold', 'Medium', 'Hot'])
legendas personalizadas
<matplotlib.legend.Legend object at 0x7f2cfaadfac0>

Existem muitos outros objetos Matplotlib que podem ser usados ​​dessa maneira. No código abaixo, listamos alguns comuns.

from matplotlib.patches import Patch
from matplotlib.lines import Line2D

legend_elements = [Line2D([0], [0], color='b', lw=4, label='Line'),
                   Line2D([0], [0], marker='o', color='w', label='Scatter',
                          markerfacecolor='g', markersize=15),
                   Patch(facecolor='orange', edgecolor='r',
                         label='Color Patch')]

# Create the figure
fig, ax = plt.subplots()
ax.legend(handles=legend_elements, loc='center')

plt.show()
legendas personalizadas

Tempo total de execução do script: (0 minutos 1,610 segundos)

Galeria gerada por Sphinx-Gallery