之前小编给大家推荐过一个支持 R 语言的交互式图形库 Plotly ,不知道大家有没有试试用它画图呢,如果你觉得 Plotly 提供的代码还是有些冗长,那么可以看看今天这个 R 包—— autoplotly[1],它能帮你一行代码实现可视化。
通常情况下,我们更关心的是构建统计模型的过程,而对于可视化模型结果都希望能快速完成。尽管一些包为生成的数据和模型提供默认的可视化。但是,它们看起来已经过时了,并且在 ggplot2 中使用它们之前,这些组件需要进行额外的转换和清理,当其他人希望在分析中生成类似的图表时,必须复制这些转换步骤。
而autoplotly()
函数允许用户使用一行代码来可视化许多流行的R包的统计结果,用于绘制许多统计数据和机器学习包的函数,以帮助用户以最小的努力实现可重现性目标,这大大提升了我们的工作效率。生成的可视化还可以使用 ggplot2 和 plotly 语法轻松地扩展,同时保持交互的特性。
下面演示下如何使用 autoplotly()
函数绘图,首先安装并加载autoplotly
包。
install.packages('autoplotly')
library(autoplotly)
autoplotly()
函数适用于 stats
包中的两个基本对象类: prcomp 和 princomp ,这两个对象是通过主成分分析得到的。下面提取 iris 数据集的前四列作为矩阵,对其进行主成分分析,并对结果进行可视化展示:
p <- autoplotly(prcomp(iris[c(1, 2, 3, 4)]), data = iris,
colour = 'Species', frame = TRUE)
p
可以看到,使用autoplotly
绘制出来的结果更加美观,并且是可交互的。不需要另外的数据处理,autoplotly
便能直接对函数生成的对象实现可视化。
通过应用额外的 ggplot2 元素或组件,可以很容易地扩展使用 autoplotly()
函数生成的图形。例如,我们可以使用 ggtitle
和labs
向原始生成的图形添加标题和轴标签。
autoplotly(
prcomp(iris[c(1, 2, 3, 4)]), data = iris, colour = 'Species', frame = TRUE) +
ggplot2::ggtitle("Principal Components Analysis") +
ggplot2::labs(y = "Second Principal Component", x = "First Principal Component")
类似地,我们可以使用 plotly
包 添加额外的交互组件。下面的例子将在原图的中心处添加一个箭头和注释文本:
p <- autoplotly(prcomp(iris[c(1, 2, 3, 4)]), data = iris,
colour = 'Species', frame = TRUE)
p %>% plotly::layout(annotations = list(
text = "看这里",
font = list(
family = "Courier New, monospace",
size = 18,
color = "black"),
x = 0,
y = 0,
showarrow = TRUE))
strucchange::breakpoints
构建的回归模型中,对有可能发生结构变化的最佳断点进行可视化:library(strucchange)
autoplotly(breakpoints(Nile ~ 1), ts.colour = "blue", ts.linetype = "dashed",
cpt.colour = "dodgerblue3", cpt.linetype = "solid")
library(splines)
autoplotly(ns(ggplot2::diamonds$price, df = 6))
目前,autoplotly
只支持对部分对象进行可视化,这份清单上列举了所有对象,可点击链接查看:
有了这个包,我们可以减少花在学习 ggplot2 语法或类似 plotly 的交互式可视化包上的时间,大家快快尝试一下吧~
[1]autoplotly
: https://terrytangyuan.github.io/2018/02/12/autoplotly-intro/
[2]https://github.com/sinhrks/ggfortify#coverage: https://github.com/sinhrks/ggfortify#coverage