комментирование и размещение легенд на стороне оси, частный случай нескольких осей: - PullRequest
1 голос
/ 29 октября 2019

Вот моя проблема. Я хотел бы разбросать график из других данных, чем в этом рабочем примере, два графика разброса на одном и том же рисунке с двумя разными осями (каждый масштабирован для данных). Я почти преуспел, вот результат:

fig = plt.figure(figsize=(20, 10))
fig.tight_layout
ax = plt.axes()
ax_bis = ax.twinx()

x = np.linspace(-1,1,100)
y1 = dist1 = np.random.normal(0.5, 0.25, 100)
y2 = dist2 = np.random.normal(8, 0.1, 100)


plt.grid(True)
lns1 = ax.plot(x,y1, 'ro', label = 'dist 1' )
lns2 = ax_bis.plot(x,y2, 'yx', label = 'dist 2')


lns = lns1+lns2
labs = [l.get_label() for l in lns]
ax.legend(lns, labs, loc = "upper left")

#plt.text(50, .025, r'$\mu=100,\ \sigma=15$')
#ax_bis.xlabel('Time')

plt.suptitle('my graph')

enter image description here

Моя борьба с этим: я не могу назвать ось. Классические способы не работают (я поместил их в код в виде комментариев), и я бы хотел добавить некоторые комментарии к самому графику (например, небольшой текст, говорящий: «эй! Граф отличный»). Как можно это сделать?

1 Ответ

1 голос
/ 30 октября 2019

Вы очень близки к настройке метки и получению текста.

fig = plt.figure(figsize=(20, 10))
fig.tight_layout
ax = plt.axes()
ax_bis = ax.twinx()

x = np.linspace(-1,1,100)
y1 = dist1 = np.random.normal(0.5, 0.25, 100)
y2 = dist2 = np.random.normal(8, 0.1, 100)


plt.grid(True)
lns1 = ax.plot(x,y1, 'ro', label = 'dist 1' )
lns2 = ax_bis.plot(x,y2, 'yx', label = 'dist 2')


lns = lns1+lns2
labs = [l.get_label() for l in lns]
ax.legend(lns, labs, loc = "upper left")

# EDITS
ax.set_xlabel('Time')
ax.text(0,0.6,"Hello World") # x,y,message
#plt.text(50, .025, r'$\mu=100,\ \sigma=15$')
#ax_bis.xlabel('Time')

plt.suptitle('my graph')

ПРИМЕЧАНИЕ. Ваш график имеет вид

'AxesSubplot' object

и не имеет атрибута .xlabel, а скорееимеет .set_xlabel

Вы можете установить текст с помощью (псевдокод)

ax.text(xval,yval,message)

Вот результат. enter image description here

...