哦,是的,你说得对。问题是函数签名
hist
允许关键字参数,并且只检查这些参数
之后
艺术家们已经被创造出来了。因此呼唤
ax.hist(..., density=True)
在一个版本中,它没有
density
参数,仍然会将其作为关键字参数传递,类似于如何传递任何艺术家属性,如颜色、线条样式等。
这里唯一好的解决方案是
检查版本
直接使用,并根据情况使用以下任一参数:
from distutils.version import LooseVersion
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
N=1000
sizes = [np.random.binomial(100, 0.03) for counter in range(N)]
fig = plt.figure(1)
main = plt.axes()
if LooseVersion(matplotlib.__version__) >= LooseVersion("2.1"):
hist_kw = dict(density=True)
else:
hist_kw = dict(normed=True)
main.hist(sizes, bins = range(21), **hist_kw)
main.axis(ymax=0.4)
plt.show()