繁体   English   中英

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

[英]Matplotlib: last y tick label not visible with 0 margins

我正在绘制一个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) ,得到如下图:

在此处输入图片说明

为什么在第一个图中看不到最顶部的y刻度标签(1.0)? 我如何以0的利润实现它?

如果数据范围是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()

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM