当我运行代码以生成数据集的相对累积频率的图形时,我的图形在图形与右侧like this one的线y=1相交的点处直线向下。

y轴限制在y=0y=1的范围内,代表累积频率的0%到100%,一旦图形达到y=1或100%,它应该在y=1处继续直到上端x轴的极限,从x=0x=2,类似于this graph

有什么方法可以确保在达到y=1之后,直方图在y=1上连续出现?我需要我的x轴保持在[0,2]范围内,而y轴保持在[0,1]范围内。

这是我用来生成图形的Python代码:

import matplotlib.pyplot as plt
# ...
plt.ylabel('Relative Cumulative Frequency')
plt.xlabel('Normalized Eigenvalues')
plt.hist(e.real, bins = 50, normed=1, histtype='step', cumulative=True)
# Limit X and Y ranges
plt.xlim(0, 2)
plt.ylim(0, 1)


谢谢,马克斯

最佳答案

您可以通过创建自己的垃圾箱和setting the last bin to np.Inf来做到这一点:

import matplotlib.pyplot as plt
import numpy as np
...
x = np.random.rand(100,1)

plt.ylabel('Relative Cumulative Frequency')
plt.xlabel('Normalized Eigenvalues')

binsCnt = 50
bins = np.append(np.linspace(x.min(), x.max(), binsCnt), [np.inf])
plt.hist(x, bins = bins, normed=1, histtype='step', cumulative=True)
# Limit X and Y ranges
plt.xlim(0, 2)
plt.ylim(0, 1)
plt.show()


python - Matplotlib累积频率图,在Python中带有额外的行-LMLPHP

10-06 14:24