2016-03-08 74 views
1

我發現了一個錘子投影圖,我一直試圖複製。 錘子投影本身不是問題,但我不知道如何在地圖下面生成軸。事實上,我不知道如何繪製(箭頭和文字)圖中的某些東西。任何人都可以幫助一個想法如何複製與軸底部的圖形? enter image description herematplotlib錘子投影繪製外地圖

回答

0

您可以使用transform關鍵字在軸座標而不是數據座標中繪製事物。如果您構建了軸對象axsee here)來繪製例如左下角的文本字符串「180°」,你可以使用

ax.text(0, 0, '180$^\circ$', ha='left', transform=ax.transAxes) 

transform=ax.transAxes設置座標系統,使該點(0, 0)是在左下,(1, 0)在右下角,(1, 1)右上方,並(0, 1)在無論軸在數據座標中跨越哪個值。

要繪製箭頭,您可以等效使用ax.arrow,也可以使用transform關鍵字。

+0

我嘗試了您的建議解決方案,但看起來地圖下面沒有足夠的空間來繪製箭頭和文本。如果將箭頭延伸到地圖的中間底部,則箭頭看起來會截斷,但實際上它將與地圖本身重疊。下面是代碼: '無花果= plt.figure() RECT = 0.05,0.05,0.9,0.9 AX = fig.add_axes(矩形) 米=底圖(投影= '錘',lon_0 = 0,分辨率='c') m.drawparallels(np.arange(-90。,120.,30。)) ax.text(0,0,'180 $^\ circ $',ha ='left',transform (0.05,0.0,0.1,0,head_width = 0.05,head_length = 0.05,fc ='k',ec ='k',transform = ax.transAxes)' – user3578925

+0

嘗試使軸相對於圖更小,例如'ax = fig.add_axes([0.2,0.2,0.6,0.6])'給出了你的座標軸兩邊空白字符大小的1/5(= 0.2)。這應該爲你的註釋提供充足的空間。 – wsj

+0

謝謝你試圖幫助我,但它仍然無法正常工作。箭頭仍然是截止的。我的代碼,根據你的建議是: '從mpl_toolkits.basemap進口底圖 進口numpy的作爲NP 進口matplotlib.pyplot作爲PLT 無花果= plt.figure() AX1 = fig.add_axes([0.2,0.2, 0.6,0.6]) m =底圖(projection ='hammer',lon_0 = 0,resolution ='c') #繪製平行線和經線。 m.drawparallels(np.arange(-90。,120.30)) m.drawmeridians(np.arange(0.,420.,60。)) ax1.arrow(0,0,0.5, 0,head_width = 0.05,head_length = 0.05,fc ='k',ec ='k',transform = ax1.transAxes) plt.show()' 你能試試看嗎? – user3578925