У меня есть этот код 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() Ниже приведен результат кода:
