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()