我正在绘制一个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()
这给出了以下输出:
当我评论plt.margins(0)
时,我得到以下图:
为什么我无法在第一张图中看到最顶部的标签(1.0)?如何以0边距实现它?
答案 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()
如果您的数据不在1的范围内,则不会。
与data = np.linspace(0,0.99,50)
相同的代码生成
所以你需要手动设置你想要的范围,因为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()