Добавьте легенду, охватывающую линии оси Twinx.Python

Программы на Python
Ответить
Гость
 Добавьте легенду, охватывающую линии оси Twinx.

Сообщение Гость »


У меня есть этот код Python.
[*]он совмещает ось ax и отображает некоторую функцию на обеих осях [*]Я рисую легенду на ax1
Проблема в том, что легенда не покрывает кривые ax2

Можно автоматически позиционировать легенду на ax, закрыв строки ax2.

Обратите внимание, что в fig.legend опция loc="best" недоступна. А мне нужно автоматическое позиционирование внутри области графика.

Передача

импортировать matplotlib.pyplot как plt импортировать numpy как np # Установите значения x для функций синуса и косинуса x = np.linspace(0, 2*np.pi, 100) # Создаем фигуру и ось рис, топор = plt.subplots() топор2 = топор.twinx() # Постройте график функций синуса и косинуса на оси ax.plot(x, np.sin(x), label='Sine') ax.plot(x, np.cos(x), label='Cosine') ax2.plot(x, np.cos(x+1), label='Cosine 2', color="red") ax2.plot(x, x, label='Cosine 2', color="green") # Добавляем заголовок и метки к оси ax.set_title('Функции синуса и косинуса') ax.set_xlabel('X') ax.set_ylabel('Y') # Получить легенды линий по оси линии, метки = ax.get_legend_handles_labels() линии2, метки2 = ax2.get_legend_handles_labels() # Добавляем легенду к рисунку ax.legend(lines +lines2, labels + label2,framealpha=1.0) ax.get_legend().set_zorder(10) # Отображение сюжета plt.show() Ниже приведен результат кода:


Изображение

Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»