我做了很多绘图,并在 pyplot.hist 函数中遇到了一个奇怪的异常。我已将我的程序精简到最小的工作示例以显示问题。
import matplotlib.pyplot as plt
import numpy as np
var = [25.00, 35.68, 29.02, 25.46, 30.58, 30.86, 38.08, 38.63,
25.19, 32.11, 26.57, 37.23, 37.97, 27.38, 27.25, 33.33,
31.41, 26.93, 28.42, 25.99, 30.09, 31.87, 34.40, 33.46,
31.76, 34.03, 27.01, 27.52, 30.41, 25.84, 25.84]
fig = plt.figure()
plt.hist(var, histtype = 'step')
plt.show()
当我运行脚本时,我得到了这个:
异常 http://dl.dropbox.com/u/13695305/Figure%201_005.png
但是,如果我删除最后 5 个元素:27.01、27.52、30.41、25.84、25.84,那么脚本可以正常工作。
import matplotlib.pyplot as plt
import numpy as np
var = [25.00, 35.68, 29.02, 25.46, 30.58, 30.86, 38.08, 38.63,
25.19, 32.11, 26.57, 37.23, 37.97, 27.38, 27.25, 33.33,
31.41, 26.93, 28.42, 25.99, 30.09, 31.87, 34.40, 33.46,
31.76, 34.03]
fig = plt.figure()
plt.hist(var, histtype = 'step')
plt.show()
在职的!http://dl.dropbox.com/u/13695305/Figure%201_004.png
这真让我抓狂!我试过使用 numpy 数组,但没有帮助。Numpy random 没问题。但由于某种原因,我的特定数据集(类型?)导致它失败。有谁知道为什么?
编辑:重要的是要注意该函数在 histtype = 'bar' 下工作正常,但错误出现在 histtype = 'step' 上。希望有人可以重现这个问题。