matplotlib直方图中的圆棒

时间:2014-10-21 12:37:55

标签: python matplotlib histogram

我在{python}中使用matplotlib.pyplot.hist()作为直方图。如果我使用可见的边缘宽度,例如使用histtype='step'时,单个条的上角略微圆。我希望它们是明显的长方形。我已尝试使用solid_capstyle关键字,该关键字用于影响线图的形状,但这在hist()中不起作用。有关如何做到这一点的任何想法?谢谢!

这是我最小的自包含示例

import numpy as np
import matplotlib.pyplot as plt

mu = 200
sigma = 25
x = mu + sigma*np.random.randn(10000)

fig, (ax0, ax1) = plt.subplots(ncols=2, figsize=(8, 4))
ax0.hist(x, 20, normed=1, histtype='step', facecolor='g', alpha=0.75, linewidth=4.)
ax0.set_title('step')
# Create a histogram by providing the bin edges (unequally spaced).
bins = [100, 150, 180, 195, 205, 220, 250, 300]
ax1.hist(x, bins, normed=1, histtype='step', rwidth=0.8, linewidth=4.)
ax1.set_title('unequal bins')
plt.tight_layout()
plt.savefig('test.png', dpi=200)

1 个答案:

答案 0 :(得分:4)

MatPlotLib 1.4中提供了控制此属性的功能。所以,我建议升级;例如,如果你使用pip:

pip install --upgrade matplotlib

然后在对joinstyle的调用中使用['miter' | 'round' | 'bevel']关键字参数(hist); e.g:

ax0.hist(x, 20, normed=1, histtype='step',
         facecolor='g', alpha=0.75, linewidth=4.,
         joinstyle='miter')

请注意,'miter'(方角)似乎是MPL 1.4中的默认值,因此在您的情况下实际上不需要指定此参数。我把它包含在这里是明确的。