热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用MicrosoftExcel绘制CDF图-PlotaCDFchartbyMicrosoftExcel

ImnotquitesureifIcanaskthisquestionhereoronSuperUser,我不太确定我能不能问这个问题或者是关于超级用户,Iwant

I'm not quite sure if I can ask this question here or on SuperUser,

我不太确定我能不能问这个问题或者是关于超级用户,

I want to know how can I plot a CDF chart of my output in excel.

我想知道如何用excel绘制输出的CDF图。

my data is something like this (my real data have 22424 records):

我的数据是这样的(我的真实数据有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 个解决方案

#1


3  

You can use the NORMDIST function and set the final parameter to true:

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

As an example, suppose I have 20 data points from 0.1 to 2.0 in increments of 0.1 i.e. 0.1, 0.2, 0.3...2.0.

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

Now suppose that the mean of that dataset is 1.0 and the standard deviation is 0.2.

假设数据集的均值是1。0,标准差是0。2。

To get the CDF plot I can use the following formula for each of my values:

为了得到CDF图,我可以对我的每个值使用以下公式:

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

alt text


To remove duplicate entries from your data and sum values that are the same you can use the following code.

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

  1. In excel, place you data in sheet1, starting in cell A1
  2. 在excel中,将数据放在sheet1中,从单元格A1开始
  3. Press ALT + F11 to open VBE
  4. 按ALT + F11打开VBE
  5. Now Insert > Module to place a module in the editor
  6. 现在插入>模块,在编辑器中放置一个模块
  7. Cut and paste code below into module
  8. 将下面的代码剪切粘贴到模块中
  9. Place cursor anywhere in RemoveDuplicates and Press F5 to run the code
  10. 将光标放在removeduplicate文件中的任何位置,按F5运行代码

As a result, your unique, summed results will appear in Sheet2 in your workbook.

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

#2


4  

Let's see if I understood your problem. Assuming Excel 2007 and up. Assuming your data is in columns A and B.

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

Step 1

步骤1

Use this formula in cell C1:

在单元C1中使用此公式:

=B1*COUNTIF(A:A,A1) 

And this formula in cell D1:

D1细胞的这个公式

=SUM($C$1:C1)  

and copy both formulas down to the end of data.

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

Step 2

步骤2

Select the four columns.
Select in Ribbon Data->Delete Duplicates
Uncheck Columns B,C and D

选择四列。在Ribbon数据中选择->删除重复的列B,C和D。

Step 3

步骤3

Select Columns A and D. Select in Ribbon Insert->Scatter->Line

选择列A和d,在Ribbon Insert->Scatter->Line中选择

Is this what you want to achieve?

这就是你想要达到的目标吗?

HTH!

HTH !

#3


3  

This answer is how to create an 'empirical distribution function', which is what many people really have in mind (myself included) when they say CDF... https://en.wikipedia.org/wiki/Empirical_distribution_function

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

Assuming the second column of the sample data starts in cell B1, in cell C1, type:

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

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

then press Shift+Enter, to enter it as an array formula. It will now look like this in the formula bar:

然后按Shift+Enter,以数组公式的形式输入。现在公式栏是这样的:

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

Copy the cell down to cover C1:C14. Then make Scatter plot with B1:B14 as X, C1:C14 as Y. It will show four points.

复制单元格,覆盖C1:C14。然后用B1:B14作为X, C1:C14作为y做散点图,显示4点。

  • Don't need to sort or remove duplicates
  • 不需要排序或删除副本
  • Use range names, or take advantage of Excel table capabilities, to manage the input ranges more automatically
  • 使用范围名称,或者利用Excel表功能更自动地管理输入范围
  • It is a single-cell array formula, so depending on how you copy-and-paste, you will get a message "Cannot change part of an array". If you use Copy-Paste, copy cell C1, then select cells C2:c14 and Paste.
  • 它是一个单单元数组公式,因此根据复制粘贴的方式,您将得到一条消息“无法更改数组的一部分”。如果你使用复制粘贴,复制单元C1,然后选择细胞C2:c14和粘贴。
  • Ideally, the graph should be presented as a step function, but I didn't have time to figure out any way (good or bad) to do that.
  • 理想情况下,图形应该作为一个步骤函数来呈现,但是我没有时间去想办法(好或坏)去做那个。

推荐阅读
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 三星W799在2011年的表现堪称经典,以其独特的双屏设计和强大的功能引领了双模手机的潮流。本文详细介绍其配置、功能及锁屏设置。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文探讨了 Objective-C 中的一些重要语法特性,包括 goto 语句、块(block)的使用、访问修饰符以及属性管理等。通过实例代码和详细解释,帮助开发者更好地理解和应用这些特性。 ... [详细]
  • 本文由瀚高PG实验室撰写,详细介绍了如何在PostgreSQL中创建、管理和删除模式。文章涵盖了创建模式的基本命令、public模式的特性、权限设置以及通过角色对象简化操作的方法。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 最近团队在部署DLP,作为一个技术人员对于黑盒看不到的地方还是充满了好奇心。多次咨询乙方人员DLP的算法原理是什么,他们都以商业秘密为由避而不谈,不得已只能自己查资料学习,于是有了下面的浅见。身为甲方,虽然不需要开发DLP产品,但是也有必要弄明白DLP基本的原理。俗话说工欲善其事必先利其器,只有在懂这个工具的原理之后才能更加灵活地使用这个工具,即使出现意外情况也能快速排错,越接近底层,越接近真相。根据DLP的实际用途,本文将DLP检测分为2部分,泄露关键字检测和近似重复文档检测。 ... [详细]
  • 本文探讨了在通过 API 端点调用时,使用猫鼬(Mongoose)的 findOne 方法总是返回 null 的问题,并提供了详细的解决方案和建议。 ... [详细]
  • 本文详细介绍如何在VSCode中配置自定义代码片段,使其具备与IDEA相似的代码生成快捷键功能。通过具体的Java和HTML代码片段示例,展示配置步骤及效果。 ... [详细]
  • 本文探讨了在Oracle数据库中,动态SQL语句的执行及其对事务管理的影响,特别是关于回滚操作的有效性。重点讨论了一个具体场景:将预警短信从当前表迁移到历史表时遇到的字段长度不匹配问题及相应的异常处理。 ... [详细]
author-avatar
mobiledu2502886985
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有