Matplotlib:最后y刻度标签不可见0边距

时间:2018-06-15 01:16:14

标签: python matplotlib

我正在绘制一个cdf,我希望y刻度标签为0,.2,.4,.6,.8,1。 这就是我实现它的方式。

import matplotlib.pyplot as plt
import numpy as np

# some code

fig, ax = plt.subplots(figsize=(14, 5))
ax.set_yticklabels(np.around(np.arange(0, 1.1, step=0.2),1))
plt.margins(0)
...
plt.show()

这给出了以下输出:

enter image description here

当我评论plt.margins(0)时,我得到以下图:

enter image description here

为什么我无法在第一张图中看到最顶部的标签(1.0)?如何以0边距实现它?

1 个答案:

答案 0 :(得分:1)

如果您的数据范围是0到1.它将在左上角绘制1。

import matplotlib.pyplot as plt
import numpy as np

data = np.linspace(0,1,50)

plt.plot(data)
plt.margins(0)
plt.show()

enter image description here

如果您的数据不在1的范围内,则不会。

data = np.linspace(0,0.99,50)相同的代码生成

enter image description here

所以你需要手动设置你想要的范围,因为matplotlib无法为你猜测。

import matplotlib.pyplot as plt
import numpy as np

data = np.linspace(0,0.99,50)

plt.plot(data)
plt.margins(x=0)
plt.ylim(0,1)
plt.show()

enter image description here