我有下面的代碼來生成表面密度圖。 x和y是位置co =縱座標,z軸代表密度。所有的值都是預先計算好的,並存儲在一個numpy數組中。格式化X軸刻度
#set up the grid
xi, yi = np.linspace(x.min(), x.max(), 200), np.linspace(y.min(), y.max(), 200)
xi, yi = np.meshgrid(xi, yi)
#interpolate
rbf = scipy.interpolate.Rbf(x, y, z, function='linear')
zi = rbf(xi, yi)
plt.imshow(zi, vmin=z.min(), vmax=z.max(), origin='lower', extent=[x.min(), x.max(), y.min(), y.max()])
plt.scatter(x, y, c=z,marker='o')
plt.colorbar()
plt.scatter(xo,yo, c='b', marker='*')
plt.xlabel("RA(degrees)")
plt.ylabel("DEC(degrees)")
plt.title('Surface Density Plot 2.0 < z < 2.2')
plt.savefig('2.0-2.2.png', dpi= 300)
plt.show()
我的問題是x軸蜱不是用戶友好方面,他們是150-152之間的值,但我似乎無法改變使用xticks()函數的蜱位置。 會有人有一個建議,我可以去格式化X軸?
edit- 這些是用於繪圖的xyz的值。 x,y,z是三個numpy數組 - https://www.dropbox.com/s/l03pkzplqmfm1su/xyz.csv 第一行是x值,第二行是y和第三個z。
使用xticks是手動設置x軸刻度的正確方法。通常情況下,形式爲'plt.xticks(plt.arange(150,152,0.5))'是合適的。 「xticks」的論點在這裏是關鍵,你可以給你嘗試使用的代碼嗎? – Greg 2013-04-24 09:02:22
@ user2145647謝謝,但我的問題是即使蜱變化與xticks = [150.05,150.10,150.15,150.20,150.25] plt.xticks(xticks)函數,X軸仍然結束了奇數單位1.5 e2倍數 – firefly 2013-04-24 12:59:12
@ user2145647此鏈接有輸出圖像 dropbox.com/s/bxji5sa84i1bsyz/2.0-2.2.png – firefly 2013-04-24 13:06:25