如何在 R 中绘制累积分布图

问题描述 投票:0回答:1

我有一个数据,我想绘制它的累积分布。 我的数据是:

dput(gene_snp_distance[1:50, c(1, 3)])
structure(list(distance = c(1000, 2000, 3000, 4000, 5000, 6000, 
7000, 8000, 9000, 10000, 11000, 12000, 13000, 14000, 15000, 16000, 
17000, 18000, 19000, 20000, 21000, 22000, 23000, 24000, 25000, 
26000, 27000, 28000, 29000, 30000, 31000, 32000, 33000, 34000, 
35000, 36000, 37000, 38000, 39000, 40000, 41000, 42000, 43000, 
44000, 45000, 46000, 47000, 48000, 49000, 50000), gtex_snps = c(12, 
14.3, 16.6, 18.9, 21.2, 23.5, 25.8, 28.1, 30.4, 32.7, 35, 37.3, 
39.6, 41.9, 44.2, 46.5, 48.8, 51.1, 53.4, 56.2, 56.28, 56.381, 
56.482, 56.583, 56.684, 56.785, 56.886, 56.987, 57.088, 57.189, 
57.29, 57.391, 57.492, 57.593, 57.694, 57.795, 57.896, 57.997, 
58.098, 58.199, 58.3, 58.401, 58.502, 58.603, 58.704, 58.805, 
58.906, 59.007, 59.108, 59.209)), row.names = c(NA, 50L), class = "data.frame")

这就是我尝试过的:

plot(gene_snp_distance$distance, gene_snp_distance$all_snps)

但我想绘制这样的图表: 其中第一个蓝色图代表 all_Snps,红色代表 gtex_Snps。 有谁知道如何绘制这个相似的图表。

我绘制的图表如下所示: 但我希望它代表每个距离的条形图,并在一个图中为 all_snps 和 gtex_snps 做一个图表,就像一个相互叠加的条形图。

有谁知道如何绘制类似的图表。 谢谢。

r plot bar-chart distribution cumulative-frequency
1个回答
0
投票

不确定这是否是您想要的。由于

all_Snps
未在您的数据中定义,我只能猜测您想在
gtex_snps
本身旁边绘制
gtex_snps
的累积和。

library(tidyverse)

df |> 
  mutate(all_snps = cumsum(gtex_snps)) |> 
  pivot_longer(cols = matches("snps"),
               names_to = "type", 
               values_to = "value") |> 
  ggplot() +
  geom_col(aes(distance, value, fill = type))

创建于 2023-04-02 与 reprex v2.0.2

© www.soinside.com 2019 - 2024. All rights reserved.