我试图从数据框创建一个小的多线图,看起来像这样:
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")
非常感谢这方面的任何帮助。
答案 0 :(得分:2)
我不知道您是否会考虑使用facet_wrap功能。
scales
参数将改变比例,因为fixed是默认选项。
应该修正比例(&#34;固定&#34;,默认),免费(&#34;免费&#34;),或在一个维度上免费(&#34; free_x&#34;,&# 34; free_y&#34)
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