累积频率从最大到最小

时间:2019-07-12 21:06:47

标签: r

我有四个变量(M,N,O,P),我想用val绘制它们 y轴上的累积频率(从最大到最小)和 在x轴上定位(位置)。你能帮我画一下累积图吗 使用R从最大到最小的频率?

    head(data)
      Loc variable val
    1  1  M      35.5
    2  2  M      10.0
    3  3  M      68.5
    4  4  M      74.0
    5  5  M      7.5
    6  6  M       49.0
........................
........................
      32 P     0.8913642
      33 P     14.7647320
      34 P    92.4376504
      35 P     2.2597151
      36 P    39.3573232
      37 P     32.5501549

我只是想要一个这样的图,其中的颜色图是四个变量(M,N,O,P)从最大到最小的累加值: enter image description here

1 个答案:

答案 0 :(得分:2)

最好的方法是使用软件包dplyr准备数据,并使用ggplot进行绘图。

library(dplyr)
library(ggplot2)

data %>%
  group_by(variable) %>%
  arrange(variable, val) %>%
  mutate(x = row_number()) %>%
  ggplot(aes(x, val, colour = variable)) +
  geom_line()

enter image description here

对于val的累积绘图,请包含说明

val = cumsum(val)

mutate之后的x = row_number()中。

data %>%
  group_by(variable) %>%
  arrange(variable, val) %>%
  mutate(x = row_number(),
         val = cumsum(val)) %>%
  ggplot(aes(x, val, colour = variable)) +
  geom_line()

enter image description here 数据。

data <- read.table(text = "
Loc variable val
1  M      35.5
2  M      10.0
3  M      68.5
4  M      74.0
5  M      7.5
6  M       49.0
32 P     0.8913642
33 P     14.7647320
34 P    92.4376504
35 P     2.2597151
36 P    39.3573232
37 P     32.5501549
", header = TRUE)