2013-04-23 203 views
24

我正在使用python中的matplotlib繪製直方圖,並且想繪製一條代表數據集平均線的直線,並將其作爲虛線覆蓋在直方圖上(或者其他顏色可能會也是)。關於如何在直方圖上覆蓋一條線的任何想法?在直方圖中繪製平均線(matplotlib)

我使用的是圖()命令,但不知道如何畫一條垂直線(即我應該給什麼樣的價值爲y軸?

感謝!

回答

66

您可以使用plotvlines繪製垂直線,但是從y軸的底部到頂部繪製一條垂直線,axvline可能是最簡單的函數。這裏有一個例子:

In [39]: import numpy as np 

In [40]: import matplotlib.pyplot as plt 

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

In [42]: result = plt.hist(x, bins=20, color='c') 

In [43]: plt.axvline(x.mean(), color='b', linestyle='dashed', linewidth=2) 
Out[43]: <matplotlib.lines.Line2D at 0x4377fd0> 

結果:

histogram with vertical dashed line at the mean

1

我會看看您的數據集中的最大值(即直方圖分欄值)將該值乘以大於1的數字(比如1.5),然後用它來定義y軸值。這樣,它將出現在直方圖上方,而不管直方圖