通过Microsoft Excel绘制CDF图表

时间:2010-12-30 10:40:36

标签: excel math charts plot

我不太确定我是否可以在SuperUser

上提出这个问题

我想知道如何在excel中绘制输出的CDF图表。

我的数据是这样的(我的真实数据有22424条记录):

1   2.39E-05
1   2.39E-05
1   2.39E-05
2   4.77E-05
2   4.77E-05
2   4.77E-05
4   9.55E-05
4   9.55E-05
4   9.55E-05
4   9.55E-05
4   9.55E-05
4   9.55E-05
8   0.000190931
8   0.000190931

3 个答案:

答案 0 :(得分:5)

您可以使用NORMDIST函数并将最终参数设置为true:

例如,假设我有20个数据点,从0.1到2.0,增量为0.1,即0.1,0.2,0.3 ...... 2.0。

现在假设该数据集的平均值为1.0,标准偏差为0.2。

要获得CDF图,我可以为每个值使用以下公式:

=NORMDIST(x, 1.0, 0.2, TRUE) -- where x is 0.1, 0.2, 0.3...2.0

alt text


要从数据中删除重复的条目,并使用相同的和值,您可以使用以下代码。

  1. 在Excel中,将数据放在sheet1中,从单元格A1开始
  2. ALT + F11打开VBE
  3. 现在Insert > Module将模块放入编辑器
  4. 将以下代码剪切并粘贴到模块
  5. 将光标放在RemoveDuplicates的任意位置,然后按F5运行代码
  6. 因此,您的唯一总结结果将显示在工作簿中的Sheet2中。

    Sub RemoveDuplicates()
        Dim rng As Range
        Set rng = Range("A1:B" & GetLastRow(Range("A1")))
    
        rng.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Worksheets("Sheet2").Range("A1"), Unique:=True
    
        Dim filteredRng As Range
        Dim cl As Range
    
        Set filteredRng = Worksheets("Sheet2").Range("A1:A" & GetLastRow(Worksheets("Sheet2").Range("A1")))
    
        For Each cl In filteredRng
            cl.Offset(0, 1) = Application.WorksheetFunction.SumIf(rng.Columns(1), cl.Value, rng.Columns(2))
        Next cl
    End Sub
    
    Function GetLastRow(rng As Range) As Long
        GetLastRow = rng.End(xlDown).Row
    End Function
    

答案 1 :(得分:4)

让我们看看我是否理解你的问题。假设Excel 2007及以上。假设您的数据位于A列和B列。

第1步

在单元格C1中使用此公式:

=B1*COUNTIF(A:A,A1) 

这个公式在单元格D1中:

=SUM($C$1:C1)  

并将两个公式复制到数据末尾。

第2步

选择四列 在功能区数据中选择 - >删除重复项 取消选中B,C和D列

第3步

选择A栏和D栏。 在Ribbon Insert-> Scatter-> Line

中选择

这是你想要实现的吗?

HTH!

答案 2 :(得分:4)

这个答案是如何创建一个经验分布函数,这是许多人在说CDF时真正想到的(包括我自己)... https://en.wikipedia.org/wiki/Empirical_distribution_function

假设样本数据的第二列在单元格B1中开始,在单元格C1中键入:

=SUM(IF($B$1:$B$14<=B1,1,0))/COUNT($B$1:$B$14)

然后按Shift + Enter,将其作为数组公式输入。它现在在公式栏中显示如下:

{=SUM(IF($B$1:$B$14<=B1,1,0))/COUNT($B$1:$B$14)}

将细胞复制到封面C1:C14。然后制作散点图,其中B1:B14为X,C1:C14为Y.它将显示四个点。

  • 不需要排序或删除重复项
  • 使用范围名称或利用Excel表格功能更自动地管理输入范围
  • 这是一个单格数组公式,因此根据您的复制和粘贴方式,您将收到一条消息&#34;无法更改数组的一部分&#34;。如果使用复制粘贴,请复制单元格C1,然后选择单元格C2:c14和粘贴。
  • 理想情况下,图表应该作为一个步骤函数显示,但我没有时间去弄清楚这样做的好坏。