当我运行代码以生成数据集的相对累积频率的图形时,我的图形在图形与右侧like this one的线y=1
相交的点处直线向下。
y轴限制在y=0
到y=1
的范围内,代表累积频率的0%到100%,一旦图形达到y=1
或100%,它应该在y=1
处继续直到上端x轴的极限,从x=0
到x=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()