Hasta ahora he sido capaz de etiquetar las tramas secundarias muy bien, pero estoy teniendo un problema con el principal.

Esta es la parte importante de mi código:

data_BS_P = data[channels[0]]
data_BS_R = data[channels[1]]
data_BS_Y = data[channels[2]]
plot_BS_P = data_BS_P.plot() #data_BS_P is a pandas dataframe
axBS = plot_BS_P.gca()
axBS.plot(data_BS_R, label='Roll')
axBS.plot(data_BS_Y, label='Yaw')
axBS.set_ylabel('Amplitude (urad)')
axBS.legend(loc='upper center', bbox_to_anchor=(0.5, 1.05), ncol=3,
            fancybox=True, shadow=True)
ml1 = MultipleLocator(10)
ml2 = MultipleLocator(3600)
axBS.yaxis.set_minor_locator(ml1)
axBS.xaxis.set_minor_locator(ml2)
plot_BS_P.save('L1-SUS-BS_M1_DAMP_PRY_INMON.jpg')

Y esto es lo que tengo hasta ahora: Cambiar la trama principal de la leyenda de texto de la etiqueta
Aviso el largo de la etiqueta de la línea azul. Me gustaría que para ser etiquetados como «Pitch» en lugar del nombre de archivo. En la línea que puedo hacer eso?

  • Usted no ha publicado el código necesario para resolver este problema. Publicar el código, donde la línea azul se representa. Supongo que el problema está en esta línea plot_BS_P = data_BS_P.plot().
  • plot_BS_P = data_BS_P.plot() hizo. data_BS_P es probable que un pandas DataFrame, que tiene su propio nombre blot-en. Estoy en lo cierto, O. P.?
  • Es el data_BS_P.plot() que traza la línea azul. La línea de arriba, se trata de datos = TimeSeriesDict.fetch(canales, inicio, fin, verbose=True) y el resto es la enorme lista de canales que tengo que descargar…
InformationsquelleAutor N.K. | 2014-04-12

2 Comentarios

  1. 53

    Que se necesita para ganar el acceso de la legend() objeto y el uso set_text() para cambiar los valores de texto, un ejemplo sencillo:

    plt.plot(range(10), label='Some very long label')
    plt.plot(range(1,11), label='Short label')
    L=plt.legend()
    L.get_texts()[0].set_text('make it short')
    plt.savefig('temp.png')

    Cambiar la trama principal de la leyenda de texto de la etiqueta

    En su caso, se modifica el primer elemento de la leyenda, estoy muy seguro de que el 0 índice en L.get_texts()[0] se aplica a su problema también.

    • En el modo interactivo, agregar plt.gcf().canvas.draw() para volver a dibujar la figura con la nueva etiqueta. (En el ejemplo proporcionado, plt.savefig actualizaciones de la figura antes de guardarlo.)
  2. 55

    De otra manera:

    ax.legend(labels=mylabels)
    • Esto fue por lejos la forma más fácil presentados aquí para mi caso de uso. Gracias.
    • equivalentemente, si ax no está explícitamente definido, entonces por supuesto plt.leyenda(etiquetas=my_labels) donde my_labels es una lista.
    • Esto rompió la leyenda parche de colores cuando se utiliza en boxplots hecho con seaborn.

Dejar respuesta

Please enter your comment!
Please enter your name here