使用R进行多元时序指标趋势可视化

数据时代,经常需要将多种时序数据指标放在一起进行分析,但各个数据指标量级不一致,不方便放在一张趋势图中进行分析,解决方法是把各个指标数据归一化,对于时序数据[x1, x2...xn],可以使用归一化规则为xn = xn*100/avg(x)。


之前在某社交网络公司,对于feed流,需要对pv, click, reply, share, like等指标进行趋势分析,使用的解决方案是使用python连mysql获取数据并进行归一化运算,然后使用chartDirector图形库进行可视化展现。最终结果可视化展示结果如下:

使用R进行多元时序指标趋势可视化_第1张图片


利用R同样可以实现类似功能,代码如下:

xlab = "日期";
ylab = "pv click趋势";
main = "页面pv click周趋势图";
lty = c("dotted", "solid");
col=c("blue", "red");
data_desc = c("pv", "click");

pv=c(18000, 19000, 17000, 16000, 13000, 15000, 17000);
click=c(144, 190, 150, 170, 133, 145, 189);
dates = as.Date(c("2014-03-17", "2014-03-18",  "2014-03-19", "2014-03-20", "2014-03-21", "2014-03-22", "2014-03-23")); 

#data <- read.delim("clipboard");
#pv=data[['pv']];
#click=data[['click']];
#dates = as.Date(data[['date']]); 

pv_trend = pv*100/mean(pv);
click_trend = click*100/mean(click);
max_value = max(pv_trend, click_trend);
min_value = min(pv_trend, click_trend);
ylim = c(min_value-20, max_value+40);

trend_data = data.frame(pv=pv_trend, click=click_trend);
trend = zoo(trend_data, dates);
plot(trend, screen=1, lty=lty, main=main, ylim=ylim, xlab=xlab, col=col, ylab=ylab);
legend(dates[1], max_value+40, data_desc, lty=lty, col=col);

效果如下:

使用R进行多元时序指标趋势可视化_第2张图片


你可能感兴趣的:(使用R进行多元时序指标趋势可视化)