我有一个调查,其中每行代表一个人,每列代表他们完成调查所花费的时间
我想在每个人的每个时间上绘制一个点,例如,如果一个人在 10 分钟内完成了第一部分 x1
,并在 10 分钟内完成了第二部分 x2
12 分钟,15 分钟内的第三部分 x3
和 45 分钟内的第四部分 x4
对于 ID 1,它们将在 y 轴上有这 4 个点,其中 ID 是X轴点
id <- sample(1:12)
x1 <- sample(1:250, 12, replace=F)
x2 <- sample(1:250, 12, replace=F)
x3 <- sample(1:250, 12, replace=F)
x4 <- sample(1:250, 12, replace=F)
mydf <- data.frame(id,x1,x2,x3,x4)
我尝试使用 ggplot,其中我指定 x 轴作为 ID,但我不确定如何将所有其他列表示为不同的计数
有谁知道这是否可行
任何帮助都会很棒
最佳答案
我相信我们需要首先融化
您的data.frame
,然后构建您想要的绘图。
library(reshape2)
melted <- melt(mydf, id.vars = "id") # Melt data
# Generate plot
library(ggplot2)
ggplot(melted, aes(factor(id), value, colour = variable)) +
geom_point()
关于r - ggplot2:绘制每个 id 的所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36238421/