通常在使用pyplot绘图时,我们在右下角有当前的(x,y)值:
但是,如果重新标记会发生什么?代码:
import matplotlib.pyplot as plt
plt.ion()
plt.draw()
plt.plot([(i,i) for i in range(10)])
plt.gca().set_xticklabels((1,2,3,4,5,6,7,8,9,10))
plt.draw()
你得到:
如您所见,x值已损坏,即不再显示。这可能对非数字标签有意义,并且可能难以处理,但这实际上发生在我使用双轴时,我需要对第一个进行转换。如果我重新标记双胞胎,坐标也不会出现,即使主轴未受影响。 有没有办法检索坐标显示功能?。如果有人觉得需要制作和更改双轴的代码,请告诉我。
答案 0 :(得分:0)
使用set_xticklabels
时,它将覆盖使用的格式化程序。所以必须再次设置:
plt.gca().xaxis.set_major_formatter(FormatStrFormatter('%.5f'))
如果要显示以某种方式转换的值,则必须使用FuncFormatter
,它接受tick和position的函数,并返回标签。阅读它here。要将它与漂亮的标量格式(在链接中)结合起来,您可以使用类似:
plt.gca().xaxis.set_major_formatter(FuncFormatter(
lambda t,p,f=yourfunc: ScalarFormatter().format_data_short(f(t))))
您可能想要在外面初始化ScalarFormatter
。