Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 限制直方图上显示的频率_Python_Python 2.7_Matplotlib_Histogram - Fatal编程技术网

Python 限制直方图上显示的频率

Python 限制直方图上显示的频率,python,python-2.7,matplotlib,histogram,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() 这将生成一个直方图,如下所示: 但是当我添加histtype=stepfilled时,如下所示 plt.hist(data["Main Total"],histtype="stepf

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

plt.hist(data["Main Total"],alpha=.7)
plt.title("Total marks Histogram")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()
这将生成一个直方图,如下所示:

但是当我添加
histtype=stepfilled
时,如下所示

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

使用
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()

这是。它只有
90行

正如我在上面的评论中所指出的,如果将matplotlib升级到1.3.x,我认为这将很好,但如果您所在的系统无法升级,您也可以更改直方图的“线宽”以获得相同的效果:

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

您使用的mpl版本是什么?能否在1.3.1或master上复制此版本?自动定标器似乎有更多的问题……您能发布一个包含伪数据的示例来重现这个问题吗?@tcaswell使用我试图运行的代码和数据进行了更新。我可以确认您共享的代码在Matplotlib 1.3.1上按预期工作(将
reset\u index
行更改为覆盖
data
)。我想我还记得1.2上的直方图缩放也有一些问题。
linewidth=0
确实有效,但我也会尝试升级,看看会发生什么