2016-02-19 263 views
0

我試圖重新定位在極座標圖的y或 「R」 的標籤:matplotlib極座標圖設置標籤位置

import numpy as np 
import matplotlib.pyplot as plt 
theta = np.linspace(0, 2 * np.pi) 
r = np.linspace(0, 2) 
plt.polar(theta, r) 
rlab = plt.ylabel("Directivity [dB]") 
rlab.set_position((1.0, 0.6)) 
rlab.set_rotation(0) 
plt.show() 

這給:

/Users/Atom/figure_1.png

,似乎忽略x位置參數。我希望標籤出現在劇情之外,在yticks的右上方。

回答

1

位置正在改變,命令不被忽略。您可以在rlab.set_position((1.0, x))中玩x的值來查看它。

這就是說,我沒有找到位置元組的第一個參數的任何影響。更重要的是奇怪的是,第一個值被重置:

>>> rlab.get_position() 
(372.8395415374975, 0.6) 
>>> %hist -op 57-62 
>>> rlab.set_position((5.0, 0.9)) 
>>> rlab.get_position() 
(5.0, 0.9) 
>>> plt.show() 
>>> rlab.get_position() 
(372.8395415374975, 0.9) 

因此,儘管垂直位置被改變時,水平一個不是。看起來像是開發者的錯誤或故意的意圖。

作爲變通,你可以與定位文本標籤的工作:

ax = plt.gca() 
plt.text(1, .8, "test", transform=ax.transAxes) 

或者,您可以添加填充到ylabel,就像這樣:

ax.yaxis.labelpad = -100 # negative padding pushes the label to the right 

(這是一個建議發現elsewhere on stackoverflow),但我覺得這種方法不夠靈活。

+0

由x位置參數,我的意思是元組的水平組件 - 抱歉,我應該更清楚。 – user2561747