2014-09-05 36 views
0

我想用Matplotlib(Python庫)繪製一些數據並添加一條水平線,它不會覆蓋整個軸範圍,而是從中間開始並在右側完成軸。從數據單元到軸單元的Matplotlib轉換

我使用:

plt.axhline(y=1.75,xmin=0.5) 

其中y指定軸單位被定義在數據單元中的線的高度,但XMIN(以及XMAX)需要(= 0軸的開始結束時= 1)。雖然我只知道我希望我的行以數據單位開始的點,但是有沒有一種方法/函數可以從一個轉換到另一個?

回答

2

只需戰平plt

import numpy as np 
import matplotlib.pyplot as plt 

x = np.linspace(0.2,10,100) 
fig, ax = plt.subplots() 
ax.plot(x, 1/x) 
ax.plot(x, np.log(x)) 
ax.set_aspect('equal') 
ax.grid(True, which='both') 

y = 1.25 
xmin = 2 
xmax = ax.get_xlim()[1] 
ax.plot([xmin, xmax], [y, y], color='k') 

線,給了我:

Example Plot

+0

它確實可以工作,但後來我需要知道XMAX,軸範圍,是有一個功能那? – 2014-09-05 16:57:09

+0

顯然'plt.xlim()'做的工作,我會盡力讓你知道。 – 2014-09-05 16:58:35

+1

當然是。它是'ax = plt.gca(); ax.get_xlim()' – 2014-09-05 16:58:41