R语言如何绘制累积曲线(23)

本文介绍累积曲线(ecdf)的基本概念及应用案例,并提供R语言绘制方法及BioLadder生信云平台在线绘制教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是累积曲线?

累积曲线,全称是“经验累积分布函数”(ecdf)

在X轴映射所有数值,在Y轴映射排名的累积占比。最后通过点图和梯度连接线来进行可视化数据。就出现了简单的经验累积分布函数(ecdf)

为了理解这个抽象的概念,我们用学生成绩表的累积曲线举个例子。

学生的语文成绩如下:

第一列是学生名称,第二列是语文成绩。

image-20220214161150759

绘图时,数据会按照从小到大排序并计数,根据所占总数的比例,不断累积,最终如下图的蓝色所示。

从图中可以看出(红线),有50%的学生语文成绩在60分以下。

image-20220214161245149

2.绘图前的数据准备

​ demo数据可以在https://www.bioladder.cn/shiny/zyp/bioladder2/demoData/lolly/demoData.txt下载。

​ 包含2个维度的数据,用生物学常用的搜库结果举例。每一列是个样本,每一行是个基因。

image-20220214164431065

3. R语言怎么画累积曲线

# 加载R包,没有安装请先安装  install.packages("包名") 
library(ggplot2)
library(reshape2)

# 读取累积曲线数据文件
df = read.delim("https://www.bioladder.cn/shiny/zyp/bioladder2/demoData/ecdf/demo.txt",
                row.names = 1)

df = melt(df)            # reshape2中的函数,宽数据转换为长数据
df$value = log(df$value) # 为方便观察,做log变化,以实际数据是否需要为准


# 绘图
ggplot(df,
       aes(
         x=value,
         color=variable
         ))+
  stat_ecdf( # ggplot2中的经验累积分布函数
    size=2   # 线条粗细
    ) 

4. BioLadder生信云平台在线绘制累积曲线

不想写代码?可以用BioLadder生信云平台在线绘制累积曲线。

网址:https://www.bioladder.cn/web/#/chart/67

image-20220214164535805

### 使用R语言绘制集中曲线 #### 集中曲线简介 集中曲线(Concentration Curve)是一种用于衡量收入分配不平等程度的工具,类似于洛伦兹曲线。它通常用来描述某一特定变量(如健康支出、教育投资等)相对于总收入或其他经济指标的分布情况。 在R语言中,可以通过`plot()`函数实现集中曲线绘制,并利用自定义数据点和参数完成个性化配置[^3]。 --- #### 示例代码:绘制集中曲线 以下是使用R语言绘制集中曲线的一个简单示例: ```r # 加载必要的库 library(ggplot2) # 创建模拟数据集 set.seed(123) income <- sort(runif(100, min = 1000, max = 10000)) # 收入按升序排列 expenditure <- income * runif(100, min = 0.8, max = 1.2) # 假设支出与收入成比例关系 # 计算累积百分比 cum_income <- cumsum(income) / sum(income) # 累积收入占比 cum_expenditure <- cumsum(expenditure) / sum(expenditure) # 累积支出占比 # 构建数据框 data_cc <- data.frame( CumulativeIncome = cum_income, CumulativeExpenditure = cum_expenditure ) # 绘制集中曲线 ggplot(data_cc, aes(x = CumulativeIncome, y = CumulativeExpenditure)) + geom_line(color = "blue", size = 1) + # 添加集中曲线 geom_abline(intercept = 0, slope = 1, linetype = "dashed", color = "red") + # 对角线 (完美均衡) labs(title = "集中曲线", x = "累计收入份额 (%)", y = "累计支出份额 (%)") + theme_minimal() ``` --- #### 参数解释 - `CumulativeIncome`: 表示人口按照收入排序后的累积收入份额。 - `CumulativeExpenditure`: 表示对应于累积收入的某项具体支出或资源分配的累积份额。 - `geom_line()`: 用于绘制实际的集中曲线。 - `geom_abline()`: 添加一条虚线作为参考线,表示完全均匀分布的情况。 - `labs()`: 设置图表标题以及坐标轴标签。 此方法可以扩展到其他领域中的类似问题,只需替换输入的数据即可。 --- #### 注意事项 如果需要更复杂的定制化选项,比如调整线条样式、颜色渐变或是添加额外标注,则可进一步探索`ggplot2`的功能[^4]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值