我有四年的时间序列数据。现在我想逐年绘制相同的数据并进行比较分析。虚拟数据为
library(xts)
library(ggplot2)
timeindex <- seq(as.POSIXct('2016-01-01'),as.POSIXct('2016-12-31 23:59:59'), by = "1 mins")
dataframe <- data.frame(year1=rnorm(length(timeindex),100,10),year2=rnorm(length(timeindex),150,7),
year3=rnorm(length(timeindex),200,3),
year4=rnorm(length(timeindex),350,4))
xts_df <- xts(dataframe,timeindex)
现在,当我使用ggplot时,使用以下行绘制所有系列需要很长时间
visualize_dataframe_all_columns(xts_df)
上述功能定义为:
visualize_dataframe_all_columns <- function(xts_data) {
library(RColorBrewer)# to increase no. of colors
library(plotly)
dframe <- data.frame(timeindex=index(xts_data),coredata(xts_data))
df_long <- reshape2::melt(dframe,id.vars = "timeindex")
colourCount = length(unique(df_long$variable))
getPalette = colorRampPalette(brewer.pal(8, "Dark2"))(colourCount) # brewer.pal(8, "Dark2") or brewer.pal(9, "Set1")
g <- ggplot(df_long,aes(timeindex,value,col=variable,group=variable))
g <- g + geom_line() + scale_colour_manual(values=getPalette)
ggplotly(g)
}
上述方法的问题是:
plotly
放大图表非常困难。还有其他更好的方法有没有更好的方法可视化这些数据?
答案 0 :(得分:0)
我在10分钟数据的频率上遇到了或多或少相同的问题。然而,问题是,绘制全年的分钟数据是否有意义?人眼无法识别这种差异。
我会根据该数据创建每日xts,然后将其绘制为年份。并修改函数以绘制分钟数据的一段时间。