2013-02-02 128 views
5

我有簡單的情節是這樣的:matplotlib座標格式

matplotlib.pyplot as plt 

pt_no = [1,2,3] 
coord_x = [6035763.111, 6035765.251, 6035762.801] 
coord_y = [6439524.100, 6439522.251, 6439518.298] 

fig, ax = plt.subplots() 
ax.scatter(coord_y, coord_x, marker='x') 
ax.axes.get_xaxis().set_visible(False) 
ax.axes.get_yaxis().set_visible(False) 
for i, txt in enumerate(pt_no): 
    ax.annotate(txt, (coord_y[i], coord_x[i])) 

plt.show() 

但是當你移動或保持光標在圖中的樣子6.43953e座標顯示在圖形窗口的bootom右上角+ 06.
如何可以讓我的輸入座標完全按照原樣顯示,例如
6439518.298改爲6.43953e + 0

在此先感謝

回答

9

ax.fmt_xdata屬性可以設置爲格式化顯示的字符串的函數。

例如:

ax.fmt_xdata = lambda x: "{0:f}".format(x) 
ax.fmt_ydata = lambda x: "{0:f}".format(x) 
+0

由於覆蓋默認的標籤,這正是我想要的。 – daikini

+0

但是還有一個問題:當你檢查我的代碼時,你會看到我交換的軸通過我的座標x,y作爲y,x到matplotlib,使我的繪圖向北。結果我的座標反向顯示在繪圖窗口中。它可以很容易地改變? – daikini

7

您也可以完全通過設置format_coord

ax.format_coord = lambda x, y: "({0:f}, ".format(y) + "{0:f})".format(x) 

exampleapi doc

+0

非常感謝這是一個很好的提示,它可以讓我在這件事情上獲得所需的一切。 – daikini