2013-02-02 91 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