Изменить текст метки легенды основного сюжета
До сих пор я мог просто подписать подзаголовки, но у меня проблема с основной.
Здесь соответствующая часть моего кода:
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')
И это то, что у меня есть до сих пор:
Обратите внимание на длинную метку синей линии. Я бы хотел, чтобы это было обозначено как "Pitch" вместо имени файла. В какой строке я могу это сделать?
Ответы
Ответ 1
Вам нужно получить доступ к объекту legend()
и использовать set_text()
для изменения текстовых значений, простой пример:
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')
![enter image description here]()
В вашем случае вы меняете первый элемент в легенде, я уверен, что индекс 0
в L.get_texts()[0]
также относится к вашей проблеме.
Ответ 2
Другой способ:
ax.legend(labels=mylabels)
Ответ 3
Вы также можете использовать set_label, чтобы установить метки легенды, что также приятно и коротко:
ax.set_label(mylabels)