导语
GUIDE ╲
ggfortify作为ggplot2的补充包,不仅可以应用于时序分析领域,还能应用于各种统计分析领域。
背景介绍
ggfortify是一个应用起来非常简单的R包,可以仅用一行代码绘制各种统计图,更为简洁易懂,能够满足我们各种绘图的需求。
接下来小编将给大家介绍如何通过ggfortify和ggplot2进行主成分分析和时序分析等多种图片的可视化!
R包安装
#bioconductor安装
BiocManager::install("ggfortify")
library(ggfortify)
#github安装
library(devtools)
install_github('sinhrks/ggfortify')
library(ggfortify)
函数介绍:
autoplot(object, #目标对象
data = NULL, #数据输入
colour = 'Species' ,#通过分类变量设置颜色
label = TRUE ,#标签
label.size = 3, #标签的大小
label.colour, #标签的颜色
label.alpha, #透明度
label.angle , #旋转的角度
loadings = TRUE, #画特征向量
loadings.colour = 'blue', #特征向量颜色
loadings.label = TRUE , #特征向量的标签
loadings.label.size = 3 , #特征向量标签的大小
frame = TRUE, #把每个类圈出来
frame.colour = 'Species' #对分类变量进行颜色标注
frame.type = 't' , #选择圈的类型
...)
R包的使用
01
时序分析可视化
使用AirPassengers数据集绘制基本时序分析图片
#AirPassengers数据集
autoplot(AirPassengers)
使用 ts.colour和ts.linetype改变线的颜色和形状
autoplot(AirPassengers, ts.colour = 'red',
ts.linetype = 'dashed',xlab = "time",ylab = "number",
main= "time series")
通过changepoint包识别时间序列中均值和方差的变化,strucchange包检测数据跳跃。
BiocManager::install("changepoint")
library(changepoint)
autoplot(cpt.meanvar(AirPassengers))
BiocManager::install("strucchange")
library(strucchange)
autoplot(breakpoints(Nile ~ 1))
多变量的时序分析:
BiocManager::install("vars")
library(vars)
data(Canada)## Canada数据集,包含e、prod、rw和U四个变量
autoplot(Canada)#fig.1
#也可以指定相应变量,只画后3列
autoplot(Canada[,-1])#fig.2
#使用 facets = FALSE 可以把所有变量画在一条轴上。
autoplot(Canada, facets = FALSE)#fig.3
fig.1
fig.2
fig.3
02
主成分分析
首先绘制最基本的图形(使用iris数据集):
df <- iris[, -5]
# 主成分分析
pca <- prcomp(df, scale. = TRUE)
# 绘图
autoplot(pca, loadings = TRUE, loadings.label = TRUE,
data = iris, colour = 'Species')
K均值:
Kmeans对象不储存原始数据,因此需要原始数据
autoplot(kmeans(USArrests, 3), data = USArrests,
label = TRUE, label.size = 3, frame = TRUE)
Cluster plot:
ggfortify支持cluster :: clara,cluster :: fanny和cluster :: pam,这些函数返回包含原始数据的对象,因此无需原始数据。
library(cluster)
autoplot(pam(iris[-5], 3), frame = TRUE, frame.type = 'norm')
03
绘制其他统计图形
热图:
# Heatmap
df <- mtcars[, c("mpg", "disp", "hp", "drat", "wt")]
df <- as.matrix(df)
autoplot(scale(df))
绘制线性模型:
#构建线性模型
m <- lm(Petal.Width ~ Petal.Length, data = iris)
# 绘图
autoplot(m, which = 1:6, ncol = 2, label.size = 3)
# 按照类别改变颜色
autoplot(m, which = 1:6, label.size = 3, data = iris,
colour = 'Species')
散点图
# 数据预处理
df2 <- df[, c("wt", "mpg")]
colnames(df2) <- c("V1", "V2")
#绘图
autoplot(df2, geom = 'point') +
labs(x = "mpg", y = "wt")
分面设计:
library(purrr)
res <- purrr::map(c(3, 4, 5), ~ kmeans(iris[-5], .))
autoplot(res, data = iris[-5], ncol = 3)
小编总结
ggfortify作为一个操作起来十分简便的R包,相信大家已经基本了解了它的功能!虽然ggfortify已经在CRAN上,但是由于它很多的功能都还在快速增加,还是推荐大家从Github上下载和安装。大家在做主成分分析等统计分析过程中都可以用到哦!