Как сделать два разных цвета названия оси у
# График:
x = [1, 5, 10, 20, 31]
y1 = [3, 7, 12, 5, 11]
y2 = [i*1.2 + 1 for i in y1]
plt.title('Biohack', fontsize = 17)
plt.plot(x, y1, '-', x, y2, '--')
plt.xlabel('День', fontsize=16, color='black')
plt.ylabel('эффективность\n' + 'самочувствие', fontsize = 10, color = 'blue')
plt.legend()
plt.grid(True)
plt.text(15,4, 'приступ')
Необходимо что бы подписи 'эффективность' и 'самочувствие' были того же цвета что и соответствующие им графики.
Ответы (1 шт):
Автор решения: Dmitri Chubarov
→ Ссылка
Вы можете использовать две разных оси для каждого из параметров.
Для этого мы добавим две строчки:
fig, ax = plt.subplots()
ax2 = ax.twinx()
Теперь эффективность мы рисуем на ax2, а самочувствие — на ax. Мы также установим для обеих осей одинаковые диапазоны.
ax.set_ylim(1,18)
ax2.set_ylim(1,18)
Легенду придётся формировать вручную, а не автоматически
plt.legend([line1, line2], ['эффективность', 'самочувствие'])
Весь код для графика целиком приведён ниже
x = [1, 5, 10, 20, 31]
y1 = [3, 7, 12, 5, 11]
y2 = [i*1.2 + 1 for i in y1]
fig, ax = plt.subplots()
ax2 = ax.twinx()
ax.set_ylim(1,18)
ax2.set_ylim(1,18)
plt.title('Biohack', fontsize = 17)
line1, = ax.plot(x, y1, '-', color='orange')
line2, = ax2.plot(x, y2, '--', color='blue')
ax.set_xlabel('День', fontsize=16, color='black')
ax.set_ylabel('эффективность', fontsize = 10, color = 'orange')
ax2.set_ylabel('самочувствие', fontsize = 10, color = 'blue')
ax.text(15,4, 'приступ')
plt.legend([line1, line2], ['эффективность', 'самочувствие'])
plt.grid(True)
