2013-02-02 119 views
1

我想添加標籤到我的圖表上的垂直線(在這種情況下品紅線 - '文字去這裏')。Matplotlib - 添加標籤對齊到軸的底部

問題是我不知道Y軸的最小值,因爲軸是自動的,而text()函數需要x和y值。

我想要能夠將文本對齊到圖的底部,或者找到最小的Y軸值(在這個例子中,看起來matplotlib正在獲取最小軸值並且將其向下舍入爲長軸值)

我目前正在與

的垂直線與axvline()

截圖顯示我嘗試下面做創建的文本()來做到這一點;

(注意:圖片上的文字在我的屏幕捕捉軟件加入到展示,我希望文字顯示)

enter image description here

回答

5

您可以使用混合變換做到這一點:

import matplotlib.transforms as transforms 

fig = plt.figure() 
ax = fig.add_subplot(111) 

trans = transforms.blended_transform_factory(
    ax.transData, ax.transAxes) 

ax.plot(range(50)) 
ax.axvline(20) 

ax.text(20, 0.05, 'test', transform=trans, rotation='vertical', ha='right') 

transform tutorial

+0

問題是我需要混合兩個系統,因爲X值是日期。 Y值我想要在X軸上方,即剛好在1.5840以上,但即使將(0,0)變換回它也不會給出1.5840。我嘗試了標準和逆向變換。 – zio

+1

@zio你描述的正是這個代碼所做的,x以數據單位給出,y以軸單位給出([0,1]) – tacaswell

+0

啊,謝謝!我現在看到它。 – zio