jjzjj

Histogram

全部标签

python - Matplotlib.pyplot.hist() 很慢

我正在一个数组中绘制大约10,000个项目。它们具有大约1,000个唯一值。现在绘图已经运行了半个小时。我确保其余代码有效。这么慢吗?这是我第一次使用pyplot绘制直方图。 最佳答案 要使用matplotlib快速绘制直方图,您需要将histt​​ype='step'参数传递给pyplot.hist。例如:plt.hist(np.random.exponential(size=1000000,bins=10000))plt.show()绘制大约需要15秒,平移或缩放时大约需要5-10秒进行更新。相比之下,使用histt​​ype=

python - 过滤数据框的 Pandas 直方图

在过去的一个小时里,这让我很生气。我可以在使用时绘制直方图:hist(df.GVW,bins=50,range=(0,200))例如,当我需要针对其中一列中的给定条件过滤数据框时,我会使用以下命令:df[df.TYPE=='SU4']到目前为止,一切正常。当我尝试获取此过滤数据的直方图时,我收到一个关键错误:KeyError:0L。我将以下内容用于过滤数据的直方图:hist(df[df.TYPE=='SU4'].GVW,bins=50,range=(0,200))是不是哪里有语法错误?感谢您的帮助! 最佳答案 也许尝试使用.valu

python - 计算Python中相同值的元素数量

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Howtocountthefrequencyoftheelementsinalist?我想计算列表中具有相同值的元素的数量并返回一个字典:>a=map(int,[x**0.5forxinrange(20)])>a>[0,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4]>number_of_elements_by_value(a)>{0:1,1:3,2:5,3:7,4:4}我猜这是一种直方图?

python - 在 matplotlib 中获得倒序累积直方图的技巧

我想知道是否有(更好的)技巧来反转matplotlib中的累积直方图。假设我有一些分数在0.0到1.0之间,其中1.0是最好的分数。现在,我有兴趣绘制有多少样本高于某个分数阈值。importnumpyasnpimportmatplotlib.pyplotaspltd=np.random.normal(size=1000)d=(d-d.min())/(d.max()-d.min())plt.hist(d,50,histtype="stepfilled",alpha=.7)默认情况下,matplotlib会绘制累积直方图,就像“样本数plt.hist(d,50,histtype="step

python - Pandas TimeGrouper 和 Pivot?

这是我的数据框的样子:TimestampCAT02016-12-0223:35:2820012016-12-0223:37:4320022016-12-0223:40:4930032016-12-0223:58:5340042016-12-0223:59:02300...这就是我在Pandas中尝试做的事情(注意时间戳是分组的):TimestampBINS2003004005002016-12-0223:3020002016-12-0223:4001002016-12-0223:500110...我正在尝试创建10分钟时间间隔的bin,以便制作条形图。并将列作为CAT值,这样我就可以计

Python:面积归一化为 1 以外的值的直方图

有没有办法告诉matplotlib对直方图进行“归一化”,使其面积等于指定值(1除外)?选项“normed=0”在n,bins,patches=plt.hist(x,50,normed=0,histtype='stepfilled')只是将其带回频率分布。 最佳答案 只需计算它并将其归一化为您想要的任何值,然后使用bar绘制直方图。附带说明一下,这会将所有条形图的区域归一化为normed_value。原始总和将不是normed_value(如果您愿意,很容易做到这种情况)。例如importnumpyasnpimportmatplot

Python:如何制作具有相同*大小* bin 的直方图

我有一组数据,想绘制它的直方图。我需要容器具有相同的大小,我的意思是它们必须包含相同数量的对象,而不是更常见的(numpy.histogram)问题等距垃圾箱。这自然会以箱宽度为代价,箱宽度可以-通常会-不同。我将指定所需bin的数量和数据集,作为返回获得bin边缘。Example:data=numpy.array([1.,1.2,1.3,2.0,2.1,2.12])bins_edges=somefunc(data,nbins=3)print(bins_edges)>>[1.,1.3,2.1,2.12]所以bin都包含2个点,但它们的宽度(0.3、0.8、0.02)不同。有两个限制:-

python - 具有多个图例条目的 Matplotlib 直方图

我有这段代码可以生成直方图,识别三种类型的字段;“低”、“中”和“高”:importpylabaspltimportpandasaspddf=pd.read_csv('April2017NEW.csv',index_col=1)df1=df.loc['OutputEnergy,(Wh/h)']#chooseindexvalueandAveragedf1['Average']=df1.mean(axis=1)N,bins,patches=plt.hist(df1['Average'],30)cmap=plt.get_cmap('jet')low=cmap(0.5)medium=cmap(

python - 用 Python 进行蒙特卡洛模拟 : building a histogram on the fly

我有一个关于使用Python动态构建直方图的概念性问题。我想弄清楚是否有好的算法或现有的程序包。我编写了一个函数,它运行蒙特卡洛模拟,被调用1,000,000,000次,并在每次运行结束时返回一个64位float。下面是上述功能:defMonteCarlo(df,head,span):#Pickinitialtruckrnd_truck=np.random.randint(0,len(df))full_length=df['length'][rnd_truck]full_weight=df['gvw'][rnd_truck]#Loopusingotherrandomtrucksunti

python - 想要将 Pandas Dataframe 绘制为具有 log10 比例 x 轴的多个直方图

我在Pandas数据框中有float据。每列代表一个变量(它们有字符串名称),每一行代表一组值(这些行有不重要的整数名称)。>>>printdata0kppawr23kppaspyd13.31238713.26604022.7752020.1000003100.000000100.0000004100.00000039.437420517.01715033.019040...我想为每一列绘制直方图。我取得的最佳结果是使用dataframe的hist方法:data.hist(bins=20)但我希望每个直方图的x轴都在log10范围内。并且bins也在log10规模上,但这很容易使用bi