2016-06-11 2 views
1

Я пытаюсь переместить метки осей в matplotlib. Я думал, что это будет работать, но это не делает:перемещение осей текста в matplotlib

import matplotlib.pyplot as plt 
plt.figure(0) 
xlbl = plt.xlabel("foo") 
pos = xlbl.get_position() 
pos = (pos[0], pos[1] + 1) 
xlbl.set_position(pos) 
plt.draw() 

Однако это работа (перемещение по х, в отличие от г):

xlbl = plt.xlabel("foo") 
pos = xlbl.get_position() 
pos = (pos[0]+1, pos[1]) 
xlbl.set_position(pos) 
plt.draw() 

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

спасибо!

ответ

1

Попробуйте использовать set_label_coords:

import matplotlib.pyplot as plt 
plt.figure(0) 
xlbl = plt.xlabel("foo") 
pos = xlbl.get_position() 
pos = (pos[0]+0.3, pos[1]+0.5) 
ax = plt.gca() 
ax.xaxis.set_label_coords(pos[0], pos[1]) 
plt.draw() 
plt.show() 

enter image description here

+0

позиции она занимает не то же самое, как те, возвращаемые xlbl.get_position() (кажется, относительно осей координат, я думаю .. .) но по настройке я получил его на работу, спасибо! – julienl