2014-09-10 38 views
0

我试图创建一个数据帧中的小倍数线图看起来是这样的:小倍数线图

Time A B C D 
2013-01-01 69.23580 8.708641 NaN 3.452663 
2013-02-01 69.46016 8.353662 NaN 4.601604 
2013-03-01 69.62315 9.156498 NaN 3.953704 
2013-04-01 71.04144 7.817074 NaN 3.762032 
2013-05-01 74.29557 7.971487 NaN 4.475369 

我会非常想上显示每个的线图一张图4个地块我的数据框中的变量。我正在使用下面的代码(在数据框之后的melt),但它给了我一些非常奇怪的结果。

q <- ggplot(data=temp) + 
    geom_line(aes(x=Time, y=value, color=variable), size = 1) + 
    facet_grid(variable~value) + 
    xlab("Time") 

在这方面的任何帮助将不胜感激。

回答

2

我不知道你是否会考虑使用facet_wrap函数。

scales参数将改变比例,因为fixed是默认选项。

应秤是固定的( “固定”,默认的),游离( “自由”),或游离在一个维( “free_x”, “free_y”)

data_text <- " 
Time A B C D 
2013-01-01 69.23580 8.708641 NaN 3.452663 
2013-02-01 69.46016 8.353662 NaN 4.601604 
2013-03-01 69.62315 9.156498 NaN 3.953704 
2013-04-01 71.04144 7.817074 NaN 3.762032 
2013-05-01 74.29557 7.971487 NaN 4.475369 
" 
temp <- read.table(text=data_text, header=TRUE, stringsAsFactors=FALSE) 
library(reshape2) 

temp <- melt(temp, id.vars=c("Time")) 
temp$Time <- as.Date(temp$Time) 
library(ggplot2) 

library(plyr) 
temp <- subset(temp, value > 0) 
q2 <- ggplot(data=temp) + geom_line(aes(x=Time, y=value, color=variable), size = 1) + facet_wrap(~ variable, scales = "free_y") 

q2 

enter image description here

+0

这工作得很好。非常感谢你的帮助。 – Patthebug 2014-09-10 21:04:57

+0

@Patthebug我们可以在评论中删除我们的讨论,因为他们实际上不会为未来的读者提供任何价值。很高兴知道这是有帮助的。 – 2014-09-10 21:06:09