标签: cumulative-frequency

绘制标记的数量少于数据点(或绘制CDF的更好方法?)[matplotlib,或一般绘图帮助]

我正在绘制具有大量数据点的累积分布函数.我在同一个绘图上绘制了几行,用标记识别,因为它将以黑白打印.我想要的是在x维度上均匀间隔的标记.我得到的是每个数据点一个标记(并且给定点数,它们都重叠)

我不确定这是我对如何绘制好的理解,或者只是缺乏理解matplotlib.我找不到'标记频率'设置.

一行的简单解决方案是从行中获取每个N'值,并将其用作linestyle =''的单独行,但我希望标记垂直对齐,并且不同的x数组具有不同的长度.

# in reality, many thousands of values
x_example = [ 567, 460, 66, 1034, 275, 26, 628, 99, 287, 157, 705, 421, 1093, \ 
     139, 204, 14, 240, 179, 94, 139, 645, 670, 47, 520, 891, 450, 56, 964,   \
     1728, 99, 277, 356, 1628, 745, 364, 88, 112, 810, 816, 523, 401, 89,     \ 
     278, 917, 370, 53, 39, 90, 853, 356 ] 
x = sort(x_example)
y = linspace(0,1,len(x))

ax = subplot(1,1,1)
plots[w] = ax.plot(x,y, …
Run Code Online (Sandbox Code Playgroud)

plot distribution matplotlib cumulative-frequency marker

28
推荐指数
1
解决办法
2万
查看次数

如何在R中生成具有累积频率和相对频率的频率表

我是R.的新手.我需要生成一个具有累积频率和相对频率的简单频率表(如书中).

所以我想从一些简单的数据生成

> x
[1] 17 17 17 17 17 17 17 17 16 16 16 16 16 18 18 18 10 12 17 17 17 17 17 17 17 17 16 16 16 16 16 18 18 18 10
[36] 12 15 19 20 22 20 19 19 19
Run Code Online (Sandbox Code Playgroud)

像这样的表:

            frequency  cumulative   relative
(9.99,11.7]    2            2       0.04545455
(11.7,13.4]    2            4       0.04545455
(13.4,15.1]    1            5       0.02272727
(15.1,16.9]   10           15       0.22727273
(16.9,18.6]   22           37       0.50000000
(18.6,20.3]    6           43       0.13636364
(20.3,22]      1 …
Run Code Online (Sandbox Code Playgroud)

r frequency histogram cumulative-frequency

28
推荐指数
3
解决办法
9万
查看次数

在matplotlib中获取逆序累积直方图的技巧

我想知道是否有一个(更好的)技巧来反转matplotlib中的累积直方图.

假设我在0.0到1.0的范围内有一些分数,其中1.0是最好的分数.现在,我有兴趣绘制多少样本高于某个分数阈值.

import numpy as np
import matplotlib.pyplot as plt

d = np.random.normal(size=1000)
d = (d - d.min()) / (d.max() - d.min())

plt.hist(d, 50, histtype="stepfilled", alpha=.7)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

默认情况下,matplotlib会绘制累积直方图,如'样本数<=得分'

plt.hist(d, 50, histtype="stepfilled", alpha=.7, cumulative=True)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我真正想要的是累积直方图没有显示'样本数<=得分'但是'样本数> =得分'

我可以这样做,但那我怎么能摆脱x轴上的"减号"?

plt.hist(d-1, 50, histtype="stepfilled", alpha=.7, cumulative=True)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有更好的想法吗?

python matplotlib histogram cumulative-frequency

9
推荐指数
1
解决办法
4913
查看次数

通过另一个数组中的值阈值快速计数 numpy 数组的元素

给定一numpy组阈值,生成满足这些值的另一个数组的计数数组的最有效方法是什么?

假设阈值数组较小且已排序,并且要计数的值数组较大且未排序。

示例:对于 的每个元素,计算大于或等于它valueLevels的元素:values

import numpy as np

n = int(1e5) # size of example

# example levels: the sequence 0, 1., 2.5, 5., 7.5, 10, 5, ... 50000, 75000
valueLevels =  np.concatenate(
                   [np.array([0.]), 
                    np.concatenate([ [ x*10**y for x in [1., 2.5, 5., 7.5] ] 
                                   for y in range(5) ] ) 
                    ]
                )

np.random.seed(123)
values = np.random.uniform(low=0, high=1e5, size=n)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试过列表理解方法。

  • np.array([sum(values>=x) for x in valueLevels])速度慢得令人难以接受
  • np.array([len(values[values>=x]) for x in valueLevels])是一个进步
  • 排序 …

python numpy cumulative-frequency

7
推荐指数
1
解决办法
1221
查看次数

如何实现累积产品表?

鉴于以下问题:

有一个k整数序列,名为s,可以有2个操作,

1)Sum [i,j] - s [i] + s [i + 1] + ... + s [j]的值是多少?

2)更新[i,val] - 将s [i]的值更改为val.

我相信这里的大多数人都听说过使用累积频率表/ fenwick树来优化复杂性.

现在,如果我不想查询总和,而是我想执行以下操作:

乘积[i,j] - s [i]*s [i + 1]*...*s [j]的值是多少?

新问题起初似乎微不足道,至少对于第一次操作Product [i,j].

假设我使用名为f的累积产品表:

  1. 在首先想到的,当我们调用更新[我,VAL] ,我们应该划分累积性的产品F [Z]z的我- >Ĵ通过的旧值S [I]然后乘以新的价值.
  2. 但是如果s [i]的旧值为0,我们将面临2个问题:

    • 除以0.但是通过检查s [i]的旧值是否为0可以很容易地解决这个问题.

    • 任何实数为0的乘积为0.此结果将导致从f [i]f [j]的所有其他值为0.因此我们无法成功执行Update [i,val].这个问题并不是那么微不足道,因为它会影响f [i]以外的其他值. …

algorithm cumulative-frequency

6
推荐指数
1
解决办法
223
查看次数

用累积频率有效地替换数据帧

我正在尝试编写一个占用大数据帧的程序,并用这些值的累积频率(按升序排序)替换每列值.例如,如果值列为:5,8,3,5,4,3,8,5,5,1那么相对和累积频率为:

  • 1:rel_freq = 0.1,cum_freq = 0.1
  • 3:rel_freq = 0.2,cum_freq = 0.3
  • 4:rel_freq = 0.1,cum_freq = 0.4
  • 5:rel_freq = 0.4,cum_freq = 0.8
  • 8:rel_freq = 0.2,cum_freq = 1.0

然后原始列变为:0.8,1.0,0.3,0.8,0.4,0.3,1.0,0.8,0.8,0.1

以下代码正确执行此操作,但由于嵌套循环,它可能很难缩放.知道如何更有效地执行此任务吗?

mydata = read.table(.....)

totalcols = ncol(mydata)
totalrows = nrow(mydata)

for (i in 1:totalcols) {
    freqtable = data.frame(table(mydata[,i])/totalrows)  # create freq table
    freqtable$CumSum = cumsum(freqtable$Freq)   # calc cumulative freq

    hashtable = new.env(hash=TRUE)
    nrows = nrow(freqtable)

    # store cum freq in hash
    for (x in 1:nrows) {
        dummy = toString(freqtable$Var1[x])
        hashtable[[dummy]] = freqtable$CumSum[x]
    } …
Run Code Online (Sandbox Code Playgroud)

hash r vectorization cumulative-frequency dataframe

5
推荐指数
1
解决办法
1120
查看次数

SQL查询日期时间列表的累积频率

我在数据库列中有一个时间列表(表示访问网站).

我需要按时间间隔对它们进行分组,然后获得这些日期的"累积频率"表.

例如,我可能有:

9:01
9:04
9:11
9:13
9:22
9:24
9:28
Run Code Online (Sandbox Code Playgroud)

我想把它转换成

9:05 - 2
9:15 - 4
9:25 - 6
9:30 - 7
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?我甚至可以在SQL中轻松实现这一点吗?我可以很容易地在C#中做到这一点

sql running-total cumulative-frequency

4
推荐指数
1
解决办法
6338
查看次数

select语句中的mysql计算

我一直在Excel办公室工作.我的记录变得太多了,想要使用mysql.i有一个来自db的视图它有"date,stockdelivered,sales"列我想添加另一个计算字段,称为"库存余额".我知道这应该是在数据输入期间在客户端完成的.我有一个脚本,只根据视图和表生成php列表/报告,它没有添加计算字段的选项,所以我想在可能的情况下在mysql中创建一个视图.

在excel中,我曾经如下做过.

在此输入图像描述

我想知道这是否可能在mysql中.

在此输入图像描述

我对我的sql没有太多经验,但我想第一个必须能够选择前一行.colomn4然后将其添加到当前row.colomn2减去当前row.colomn3

如果有另一种方法可以实现相同的输出请建议.

mysql calculated-columns running-total cumulative-frequency

4
推荐指数
2
解决办法
3万
查看次数

SQL查询 - 查找超出累积比例的行

假设我有一个数据表,如下所示:

ItemNo    |    ItemCount   |    Proportion
------------------------------------------
1              3                0.15 
2              2                0.10
3              3                0.15
4              0                0.00
5              2                0.10
6              1                0.05
7              5                0.25
8              4                0.20
Run Code Online (Sandbox Code Playgroud)

换句话说,总共有20个项目,并且每个ItemNo总和的累积比例为100%.表行的排序在这里很重要.

是否可以执行没有循环或游标的SQL查询来返回超过累积比例的 ItemNo一个?

换句话说,如果我想要检查的'比例'是35%,那么第一行超过那个ItemNo 3,因为0.15 + 0.10 + 0.15 = 0.40

同样,如果我想找到超过75%的第一行,那就是ItemNo 7,Proportion直到那一行的总和小于0.75.

sql sql-server cumulative-frequency

3
推荐指数
1
解决办法
1660
查看次数

从排序数据框中将最近的值绘制到未排序的数据框中

我有两个数据帧R.第一个数据帧是cumFreqDist具有相关周期的累积频率分布().数据框的第一行如下所示:

Time        cumfreq
0         0.0000000
4         0.9009009
6         1.8018018
8         7.5075075
12       23.4234234
16       39.6396396
18       53.4534535
20       58.2582583
24       75.3753754
100     100.0000000
Run Code Online (Sandbox Code Playgroud)

第二个数据框是来自runif分布的10000个绘图,使用以下代码:

 testData <- (runif(10000))*100
Run Code Online (Sandbox Code Playgroud)

对于每一行testData,我想找到相应的cumfreqin cumFreqDist并将相应的Time值添加到一个新列中testData.因为testData是一个真实数据框的测试数据框,我不想排序testData.

因为我处理的累积频率,如果该testData23.30...Time应返回的值8.也就是说,我需要找到cumfreq不超过该testData值的最近值,并仅返回该值.

data.table软件包已被提及用于其他类似问题,但我的有限理解是该软件包需要在两个数据框中识别密钥(在转换为数据表之后)并且我不能假设这些testData值满足分配的要求作为一个键 - 似乎分配一个键将对数据进行排序.当我在我正在做的进一步工作中设置种子时,这将导致我的问题.

r matching cumulative-frequency

3
推荐指数
1
解决办法
62
查看次数

R中同一图表上的频率和累积频率曲线

是否有一种方法(在R中使用ggplot或其他方式)在单个列(两行)中绘制频率和累积频率曲线,即另一个顶部,以便可以使用直线在两条曲线上显示给定的四分位数?我希望我对此很清楚..

你可以使用这个数据..

mydata<-structure(list(speed = c(10, 15, 20, 25, 30, 35, 40, 45, 50),frequency = c(0, 1, 5, 10, 20, 10, 6, 3, 0)), .Names = c("speed","frequency"), row.names = c(NA, -9L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

plot r cumulative-frequency ggplot2 frequency-distribution

2
推荐指数
1
解决办法
3859
查看次数