2016-09-17 29 views
2

有没有办法为matplotlib的hist()函数的histtype配置默认参数?默认行为是制作条形图类型直方图,我基本上从不想要看,因为比较具有重大重叠的多个分布是可怕的。在matplotlib中设置默认的histt​​ype?

万一它有某种相关性,我想达到的默认行为是有histtype='step'

回答

1

谢谢你提示我看看这个,因为我更喜欢'step'样式直方图!我通过进入matplotlib源代码解决了这个问题。我使用蟒蛇,所以它位于anaconda/lib/site-packages/python2.7/matplotlib

要更改直方图样式,我编辑了两个文件。假设当前目录是matplotlib/,那么打开axes/_axes.py并找到那里的hist()函数(它在我的机器上是5690行,matplotlib版本是1.5.1)。您应该在那里看到histtype参数。将其更改为'step'

现在打开pyplot.py并再次找到hist()函数,并对histtype参数(版本1.5.1中的行2943和我的机器)进行相同的更改。有关于不编辑此功能的评论,但是我只在编辑axes/_axes.py时才发现这是一个问题。

这对我有效!另一种方法就是自己编写一个包装器,以改变默认参数。

+0

感谢您的关注。我基本上一直使用包装函数为hist;不幸的是,原位黑客源代码不是一种选择,因为我需要我的代码在我无法控制的各种环境中工作。但是,正如你发现它是硬编码的,我想这回答了我的问题。如果能用matplotlibrc来控制它,本来是很不错的。 – chase