Настройка меток осей (текст и положение) в matplotlib - PullRequest
0 голосов
/ 05 августа 2020

У меня есть 2 набора прямоугольных angular участков на графике. Хочу назвать их отдельно. «Слой-1» для нижней части и аналогично «Слой-2» для верхней части. Я хотел установить координаты для оси Y, но это не сработало. Более того, мне не удалось добавить на этикетку текст «Layer-2». Пожалуйста помоги. Я пробовал использовать указанный ниже код, но это не сработало.

plt.ylabel("LAYER-1", loc='bottom')
yaxis.labellocation(bottom)

введите описание изображения здесь

1 Ответ

0 голосов
/ 05 августа 2020

Одно из решений - создать вторую ось, так называемую двойную ось, которая имеет одну и ту же ось x. Тогда их можно пометить отдельно. Кроме того, вы можете настроить расположение метки через axis.yaxis.set_label_coords (-0.1, 0.75)

Вот пример, который вы можете настроить по своему желанию. Результат можно найти здесь: https://i.stack.imgur.com/1o2xl.png

%matplotlib notebook
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import numpy as np
plt.rcParams['figure.dpi'] = 100

import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.1)
y1 = 0.05 * x**2
y2 = -1 *y1

fig, ax1 = plt.subplots()

ax2 = ax1.twinx()
ax1.plot(x, y1, 'g-')
ax2.plot(x, y2, 'b-')
# common x axis
ax1.set_xlabel('X data')
# First y axis label
ax1.set_ylabel('LAYER-1', color='g')
# Second y [enter image description here][1]axis label
ax2.set_ylabel('LAYER-2', color='b')
# Adjust the label location
ax1.yaxis.set_label_coords(-0.075, 0.25)
ax2.yaxis.set_label_coords(-0.1, 0.75)


plt.show()
...