在柱状图中绘制平均线(matplotlib)

时间:2013-04-23 23:35:56

标签: python matplotlib axis

我在python中使用matplotlib绘制直方图,并且想绘制一条代表数据集平均值的线,在直方图上覆盖为虚线(或者也可能是其他颜色)。关于如何在直方图上绘制线条的任何想法?

我正在使用plot()命令,但不知道如何绘制垂直线(即我应该为y轴赋予什么值?

谢谢!

3 个答案:

答案 0 :(得分:93)

您可以使用plotvlines绘制垂直线,但要从y轴的底部到顶部绘制垂直线,axvline可能是最简单的功能使用。这是一个例子:

In [80]: import numpy as np

In [81]: import matplotlib.pyplot as plt

In [82]: np.random.seed(6789)

In [83]: x = np.random.gamma(4, 0.5, 1000)

In [84]: result = plt.hist(x, bins=20, color='c', edgecolor='k', alpha=0.65)

In [85]: plt.axvline(x.mean(), color='k', linestyle='dashed', linewidth=1)
Out[85]: <matplotlib.lines.Line2D at 0x119758828>

结果: plot

答案 1 :(得分:7)

这是一个古老的话题,只是次要的加法,但是我经常喜欢做的一件事就是在行旁边绘制平均值:

b

哪个会产生以下结果: Average line with text

答案 2 :(得分:2)

我会查看数据集中的最大值(即直方图bin值)将该值乘以大于1的数字(比如1.5)并使用它来定义y轴值。这样,无论直方图中的值如何,它都会出现在直方图上方。