当使用两个选项histtype ='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")
第一个图正确显示,而在第二个案例中,使用选项histtype ='stepfilled'而不是'bar',没有。 有人有任何线索吗?
答案 0 :(得分:1)
这是matplotlib中的一个漏洞。也许你可以模拟stepfilled
操纵第一个图形中条形的样式。
github上的问题:
答案 1 :(得分:1)
如果您使用
plt.hist(x, 50, normed=1, histtype='stepfilled')
plt.semilogy()
你得到了预期的结果,但需要注意的是零值的箱子看起来很奇怪。