背景
import numpy as np
import matplotlib.pyplot as plt
这个问题乍一看好像很简单,使用xticks或者yticks不就行了吗,想几位小数就几位小数,例如
plt.xticks([5.0,7.0,2.0])
如果你是这样想,那你就太天真了,看下面的例子:
x=[1,2,3]
y=[5.0,7.0,2.0]
plt.plot(x,y)
plt.yticks(y)
我问你,画出来的图真的会是一位小数吗?请看下图:
解决办法
可以发现,yticks并不是所见即所得,除非你的刻度的小数位非0(只要有一个刻度就行),例如下面5.1非0:
x=[1,2,3]
y=[5.1,7.0,2.0]
plt.plot(x,y)
plt.yticks(y)
那如果我们就是为了统一格式,必须小数点后一位呢?这个时候我们要拿出大杀器,一个所见即所得的东西,yticks不是所见即所得,但是参数labels
可以使之达到这个目的,看招:
x=[1,2,3]
y=[5.0,7.0,2.0]
plt.plot(x,y)
plt.yticks(y,labels=y)#labels是精髓。
plt.show()
可以看到,刻度会完全展示labels里面的东西,labels里面是几位小数,那么刻度就是几位。
你学费了吗?