2012-01-24 57 views

回答

9

看一看在Transformations tutorial(哇,這花了很多挖找的 - - !)

尤其axes.transData.transform(points)回報像素座標,其中(0,0)是左下角的視口。

import matplotlib.pyplot as plt 

# set up a figure 
fig = plt.figure() 
ax = fig.add_subplot(111) 
x = np.arange(0, 10, 0.005) 
y = np.exp(-x/2.) * np.sin(2*np.pi*x) 
ax.plot(x,y) 

# what's one vertical unit & one horizontal unit in pixels? 
ax.transData.transform([(0,1),(1,0)])-ax.transData.transform((0,0)) 
# Returns: 
# array([[ 0., 384.], <-- one y unit is 384 pixels (on my computer) 
#  [ 496., 0.]]) <-- one x unit is 496 pixels. 

還有其他各種變換,你可以做 - 座標相對於你的數據,相對於軸爲圖形的比例,或在圖中像素(轉換教程真的很好)。

TO 像素(點爲1/72英寸),您可以玩弄matplotlib.transforms.ScaledTransformfig.dpi_scale_trans(教程對這個東西,我覺得)之間的轉換。

+0

完美;謝謝! – aresnick

相關問題