热门标签 | 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.
  • 理想情况下,图形应该作为一个步骤函数来呈现,但是我没有时间去想办法(好或坏)去做那个。

推荐阅读
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
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社区 版权所有