简介
通常情况下,我们更关心的是构建统计模型的过程,而对于可视化模型结果都希望能快速完成。尽管一些包为生成的数据和模型提供默认的可视化。但是,它们看起来已经过时了,并且在 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")
- 带有边界结点的自然三次样条的b样条基点可视化
 
library(splines) autoplotly(ns(ggplot2::diamonds$price, df = 6))
知识补充
目前,autoplotly只支持对部分对象进行可视化,这份清单上列举了所有对象,可点击链接查看:
结语
有了这个包,我们可以减少花在学习 ggplot2 语法或类似 plotly 的交互式可视化包上的时间,大家快快尝试一下吧~

![NO4`$Q{H~I1P9I2M`5]$LHK.png NO4`$Q{H~I1P9I2M`5]$LHK.png](https://ucc.alicdn.com/pic/developer-ecology/4d8ee018766445449511c113750d2363.png?x-oss-process=image/resize,w_1400/format,webp)



![91X(A3}]Y4Q(SYK2RAB(~I0.png 91X(A3}]Y4Q(SYK2RAB(~I0.png](https://ucc.alicdn.com/pic/developer-ecology/26d48997ae1f4b179c2b24e144e77367.png?x-oss-process=image/resize,w_1400/format,webp)
