限制直方图上显示的频率

时间:2014-03-17 05:08:42

标签: python python-2.7 matplotlib histogram

我使用matplotlib绘制直方图,我有以下代码:

plt.hist(data["Main Total"],alpha=.7)
plt.title("Total marks Histogram")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()

这产生如下的直方图: enter image description here

但是当我按以下方式添加histtype=stepfilled

plt.hist(data["Main Total"],histtype="stepfilled", alpha=.7)

它产生: enter image description here

使用stepfilled时,为什么图中显示的频率最大值非常高,即使没有频率高于20的数据,也不像正确显示它的第一个直方图。

以下是可以重新创建问题的代码

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
import statsmodels.api as sm
from numpy.random import randn
import matplotlib as mpl
import seaborn as sns

sns.set_color_palette("deep", desat=.6)
mpl.rc("figure", figsize=(8, 4))

data=pd.read_csv("output11cs.csv")
df3=data[['Total','Total.1','Total.2','Total.3','Total.4','Total.5','Total.6','Total.7']]
data["Main Total"]=df3.sum(axis=1)
data = data.dropna()
data.reset_index(drop=True)
plt.hist(data["Main Total"],alpha=.7)
plt.title("Total marks Histogram")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()

这是output11cs.csv file。它只有90

1 个答案:

答案 0 :(得分:1)

正如我在上面的评论中所指出的,如果你将matplotlib升级到1.3.x,我认为这样可以正常工作,但是如果你在一个无法升级的系统上,你也可以更改&#34 ;线宽"直方图得到相同的效果:

plt.hist(data["Main Total"], alpha=.7, linewidth=0)
plt.title("Total marks Histogram")
plt.xlabel("Value")
plt.ylabel("Frequency");

enter image description here