我有四个变量(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
答案 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()
对于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()
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)