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

推荐阅读
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 在HTML布局中,即使将 `top: 0%` 和 `left: 0%` 设置为元素的定位属性,浏览器中仍然会出现空白填充。这个问题通常与默认的浏览器样式、盒模型或父元素的定位方式有关。为了消除这些空白,可以考虑重置浏览器的默认样式,确保父元素的定位方式正确,并检查是否有其他CSS规则影响了元素的位置。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • poj 3352 Road Construction ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 在尝试对 QQmlPropertyMap 类进行测试驱动开发时,发现其派生类中无法正常调用槽函数或 Q_INVOKABLE 方法。这可能是由于 QQmlPropertyMap 的内部实现机制导致的,需要进一步研究以找到解决方案。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 本文详细介绍了在MySQL中如何高效利用EXPLAIN命令进行查询优化。通过实例解析和步骤说明,文章旨在帮助读者深入理解EXPLAIN命令的工作原理及其在性能调优中的应用,内容通俗易懂且结构清晰,适合各水平的数据库管理员和技术人员参考学习。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 如何优化MySQL数据库性能以提升查询效率和系统稳定性 ... [详细]
  • 优化后的标题:Apache Cassandra数据写入操作详解
    本文详细解析了 Apache Cassandra 中的数据写入操作,重点介绍了 INSERT 命令的使用方法。该命令主要用于将数据插入到指定表的列中,其基本语法为 `INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...)`。通过具体的示例和应用场景,文章深入探讨了如何高效地执行数据写入操作,以提升系统的性能和可靠性。 ... [详细]
  • 在什么情况下MySQL的可重复读隔离级别会导致幻读现象? ... [详细]
  • 本文深入探讨了Hibernate框架中乐观锁和悲观锁的机制及其多态特性。乐观锁假设数据在大多数情况下不会发生冲突,因此在读取数据时不加锁,而是在更新时检查版本号以确保数据未被修改。相比之下,悲观锁则认为数据在并发环境下容易产生冲突,因此在读取数据时立即加锁,以防止其他事务访问同一数据,从而避免潜在的数据不一致问题。文章还详细分析了这两种锁机制在实际应用中的优缺点,并介绍了Hibernate中的多态特性如何与锁机制结合,以实现更高效的数据管理和并发控制。 ... [详细]
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社区 版权所有