使用plyr和ggplot2绘制来自几列数据帧的数据

时间:2014-07-19 17:10:45

标签: r ggplot2 plyr

我有一个包含124列和观察的数据框。部分原因如下:

date <- c("2014-01-03", "2014-05-03","2014-02-04")
App <- c(0,2,4)
Email <- c(1,5,0)
Print <- c(0,0,1)
mgt <- c(1,9,12)

df<- data.frame (date, App, Email, Print, mgt)

我想根据日期绘制App,然后根据日期发送电子邮件,然后在不同的图中打印日期等。我正在尝试使用plyr和ggplot2输出这些图并提出:

Plots <- function (Y){print(ggplot(df, aes(x=date, y= Y)) + geom_line() +
                                scale_x_date(breaks = date_breaks('month'), label=                                   date_format('%b-%Y')) + 
                                labs(title="A", x="Date Issued", y="Number of tickets issued")+ 
                                theme_bw()) }
ServicePlots <- d_ply (df, col , Plots, .print=TRUE)

地块中也使用了包裹润滑剂,chron和鳞片。但是,这似乎根本不起作用。有人可以指出我做错了什么吗?也许可以帮我一点?

2 个答案:

答案 0 :(得分:0)

不知道plyrmelt数据有什么关系,并按原样绘制:

library(reshape2)
library(ggplot2)
library(scales)
df <- melt(df) 
ggplot(df, aes(as.Date(date), value)) +  
geom_line(aes(group = 1)) +  
scale_x_date(breaks = date_breaks('month')) +
facet_wrap( ~ variable, scales = "free") + 
labs(title="A", x="Date Issued", y="Number of tickets issued") + 
theme_bw()

enter image description here

如果您想以函数形式使用,请执行

Plots <- function(x){
  x <- melt(x)
  ggplot(x, aes(as.Date(date), value)) +  
  geom_line(aes(group = 1)) +  
  scale_x_date(breaks = date_breaks('month')) +
  facet_wrap( ~ variable, scales = "free") + 
  labs(title="A", x="Date Issued", y="Number of tickets issued") + 
  theme_bw()
} 

Plots(df)

答案 1 :(得分:-1)

以下不是基于ggplot但它有效:

par(mfrow=c(1,3))
for(i in 2:5)
    plot(mydf[,1], mydf[,i], main=colnames(mydf)[i])