且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

ggplot2每行数据帧一行

更新时间:2023-10-19 10:44:58

ggplot 以long格式喜欢数据:即每个维度的列,每个观察的行。您的数据目前是宽。使用 reshape 包从一个到另一个。

ggplot likes data in the 'long' format: i.e., a column for every dimension, and a row for every observation. Your data is currently 'wide'. Use the reshape package to go from one to the other.

我明白了,你想要Measurement1,Measurement2 ,而Measurement3为x轴? (所以在你的数据中,用户1的行将从0.1变为0.7到0.2?如果是这样,你想要这样:

Do I understand correctly that you want Measurement1, Measurement2, and Measurement3 to be on the x-axis? (So that, in your data, user 1's line would go from 0.1 to 0.7 to 0.2? If so, you want something like this:

require(reshape)

#Recreate your data frame
user <- gl(3, 1)
Meas1 <- c(0.7, 0.3, 0.3)
Meas2 <- c(0.7, 0.3, 0.3)
Meas3 <- c(0.2, 0.4, 0.4)
group <- c(3, 2, 2)
df <- data.frame(user=user, Meas1=Meas1, Meas2=Meas2, Meas3=Meas3, group=group)

#'melt' the data frame into long format
dfm <- melt(df, id.vars=c("user", "group"))

ggplot(dfm, aes(x=as.numeric(variable), y=value, colour=user)) + geom_line()