outside legends how font example change python matplotlib pandas legend legend-properties

python - legends - ¿Es posible agregar una cadena como un elemento de leyenda en matplotlib



plot title font size matplotlib (2)

Estoy produciendo algunas parcelas en matplotlib y me gustaría agregar texto explicativo para algunos de los datos. Quiero tener una cadena dentro de mi leyenda como un elemento de leyenda separado sobre el elemento ''0-10''. ¿Alguien sabe si hay una manera posible de hacer esto?

Este es el código de mi leyenda:
ax.legend([''0-10'',''10-100'',''100-500'',''500+''],loc=''best'')


Por supuesto. ax.legend() tiene una forma de dos argumentos que acepta una lista de objetos (identificadores) y una lista de cadenas (etiquetas). Use un objeto ficticio (también conocido como "artista proxy" ) para su cadena adicional. matplotlib.patches.Rectangle un matplotlib.patches.Rectangle sin relleno y 0 linewdith a continuación, pero podría usar cualquier artista compatible.

Por ejemplo, digamos que tiene 4 objetos de barra (ya que no publicó el código usado para generar el gráfico, no puedo reproducirlo exactamente).

import matplotlib.pyplot as plt from matplotlib.patches import Rectangle fig = plt.figure() ax = fig.add_subplot(111) bar_0_10 = ax.bar(np.arange(0,10), np.arange(1,11), color="k") bar_10_100 = ax.bar(np.arange(0,10), np.arange(30,40), bottom=np.arange(1,11), color="g") # create blank rectangle extra = Rectangle((0, 0), 1, 1, fc="w", fill=False, edgecolor=''none'', linewidth=0) ax.legend([extra, bar_0_10, bar_10_100], ("My explanatory text", "0-10", "10-100")) plt.show()


Solución alternativa, algo sucia pero bastante rápida.

import pylab as plt X = range(50) Y = range(50) plt.plot(X, Y, label="Very straight line") # Create empty plot with blank marker containing the extra label plt.plot([], [], '' '', label="Extra label on the legend") plt.legend() plt.show()