在y-log标度中的matplotlib stepfilled hist无法正确显示

时间:2012-11-27 11:40:08

标签: matplotlib histogram

当使用两个选项histt​​ype ='stepfilled'和log = True时,我在matplotlib中显示直方图时出现问题。我在matplotlib版本1.1.0中遇到此问题,发现它仍然存在于1.2.0版本中。

不幸的是,我没有发布图片的权利,但您可以使用以下简单代码查看此行为:

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

mu, sigma = 200, 25
x = mu + sigma*np.random.randn(10000)
n, bins, patches = plt.hist(x, 50, normed=1, histtype='bar',log=True)
plt.savefig("test1.png")
plt.clf()
n, bins, patches = plt.hist(x, 50, normed=1, histtype='stepfilled',log=True)
plt.savefig("test2.png")

第一个图正确显示,而在第二个案例中,使用选项histt​​ype ='stepfilled'而不是'bar',没有。 有人有任何线索吗?

2 个答案:

答案 0 :(得分:1)

这是matplotlib中的一个漏洞。也许你可以模拟stepfilled操纵第一个图形中条形的样式。

github上的问题:

答案 1 :(得分:1)

如果您使用

plt.hist(x, 50, normed=1, histtype='stepfilled')
plt.semilogy()

你得到了预期的结果,但需要注意的是零值的箱子看起来很奇怪。