通过Microsoft Excel绘制CDF图表

我不太确定,如果我可以在这里或在超级用户提出这个问题,

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

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

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 

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

举个例子,假设我有0.1到2.0的20个数据点,以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 

替代文字


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

  1. 在Excel中,将数据放在Sheet1中,从单元格A1开始
  2. ALT + F11打开VBE
  3. 现在Insert > ModuleInsert > Module放置在编辑器中
  4. 将以下代码剪切并粘贴到模块中
  5. 将光标放在RemoveDuplicates任何位置,然后按F5运行代码

因此,您的独特的总结结果将出现在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 

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

步骤1

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

 =B1*COUNTIF(A:A,A1) 

而这个公式在D1单元格中:

 =SUM($C$1:C1) 

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

第2步

select四列。
在function区数据 – >删除重复项中select
取消选中列B,C和D.

第3步

select列A和D.在function区插入 – >分散 – >行中select

这是你想实现的吗?

HTH!

这个答案是如何创build一个“经验分布函数”,这是许多人真正想到的(包括我自己在内)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,将其作为数组公式input。 现在它将在公式栏中看起来像这样:

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

复制单元格覆盖C1:C14。 然后用B1:B14作为X,C1:C14作为Y作散点图。它将显示四个点。

  • 不需要sorting或删除重复项
  • 使用范围名称或利用Excel表格function,可以更自动地pipe理input范围
  • 这是一个单元格的数组公式,因此根据复制和粘贴的方式,您将收到一条消息“无法更改数组的一部分”。 如果使用复制粘贴,复制单元格C1,然后select单元格C2:c14和粘贴。
  • 理想情况下,图表应该作为一个步骤函数来呈现,但是我没有时间想办法做到这一点(好的或坏的)。