我有这样的数据
Date, VID, C1, C2, C3
2/1/2014, V01, ON, OFF, OFF
2/2/2014, V01, ON, OFF, OFF
2/3/2014, V01, ON, OFF, OFF
2/4/2014, V01, ON, OFF, OFF
2/1/2014, V02, OFF, ON, OFF
2/3/2014, V02, OFF, OFF, ON
2/4/2014, V02, ON, ON, OFF
2/5/2014, V02, ON, OFF, ON
有许多VID&C1和C1,C2,C3是分类。 这是我如何绘制这个&这是非常耗时的,所以想知道我是否可以绘制一个VID的所有时间序列ib一个图表以及如何对所有VID进行绘制?
library(sqldf)
library(zoo)
#I execute this code for each variable and get separate plot
#I would like to plot all C1,C2,C3 for each vehicle in single plot
#and plot for each vehicle
vehicle_V01 = sqldf("select * from df where Vehicle='V01'")
vehicle_V01$C1_numeric = as.numeric(vehicle_V01$C1)
vehicle_V01$C2_numeric = as.numeric(vehicle_V01$C2)
vehicle_V01$C3_numeric = as.numeric(vehicle_V01$C3)
ts = zoo(vehicle_V01$C1_numeric ,vehicle_V01$Date)
plot(ts)
这是非常耗时的,不知道如何有效地做到这一点?
答案 0 :(得分:0)
我会使用ggplot2
和reshape2
来绘制和重塑数据。
library(reshape2)
library(ggplot2)
df=melt(df,id.vars=c('Date','VID'))
df$value=as.numeric(vehicle$value)#ON = 2, OFF = 1
ggplot(df,aes(x=Date,y=value))+geom_line()+facet_grid('variable+VID~.')
日期值在最后3行更改为少一个,但输出图形看起来与您在下面看到的一样。这是你正在寻找的吗? (另外,我没有使用您使用的日期值,但您可以在运行代码时使用它们,或只是更改轴标签)。