前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一行代码实现模型结果可视化

一行代码实现模型结果可视化

作者头像
庄闪闪
发布2022-02-16 21:14:51
6210
发布2022-02-16 21:14:51
举报

之前小编给大家推荐过一个支持 R 语言的交互式图形库 Plotly ,不知道大家有没有试试用它画图呢,如果你觉得 Plotly 提供的代码还是有些冗长,那么可以看看今天这个 R 包—— autoplotly[1],它能帮你一行代码实现可视化。

简介

通常情况下,我们更关心的是构建统计模型的过程,而对于可视化模型结果都希望能快速完成。尽管一些包为生成的数据和模型提供默认的可视化。但是,它们看起来已经过时了,并且在 ggplot2 中使用它们之前,这些组件需要进行额外的转换和清理,当其他人希望在分析中生成类似的图表时,必须复制这些转换步骤。

autoplotly()函数允许用户使用一行代码来可视化许多流行的R包的统计结果,用于绘制许多统计数据和机器学习包的函数,以帮助用户以最小的努力实现可重现性目标,这大大提升了我们的工作效率。生成的可视化还可以使用 ggplot2 和 plotly 语法轻松地扩展,同时保持交互的特性。

绘图实战

下面演示下如何使用 autoplotly()函数绘图,首先安装并加载autoplotly包。

代码语言:javascript
复制
install.packages('autoplotly')
library(autoplotly)

autoplotly()函数适用于 stats 包中的两个基本对象类: prcompprincomp ,这两个对象是通过主成分分析得到的。下面提取 iris 数据集的前四列作为矩阵,对其进行主成分分析,并对结果进行可视化展示:

代码语言:javascript
复制
p <- autoplotly(prcomp(iris[c(1, 2, 3, 4)]), data = iris,
  colour = 'Species', frame = TRUE)
p

可以看到,使用autoplotly绘制出来的结果更加美观,并且是可交互的。不需要另外的数据处理,autoplotly便能直接对函数生成的对象实现可视化。

图形美化

通过应用额外的 ggplot2 元素或组件,可以很容易地扩展使用 autoplotly()函数生成的图形。例如,我们可以使用 ggtitlelabs向原始生成的图形添加标题和轴标签。

代码语言:javascript
复制
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包 添加额外的交互组件。下面的例子将在原图的中心处添加一个箭头和注释文本:

代码语言:javascript
复制
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 构建的回归模型中,对有可能发生结构变化的最佳断点进行可视化:
代码语言:javascript
复制
library(strucchange)
autoplotly(breakpoints(Nile ~ 1), ts.colour = "blue", ts.linetype = "dashed",
           cpt.colour = "dodgerblue3", cpt.linetype = "solid")
  • 带有边界结点的自然三次样条的b样条基点可视化
代码语言:javascript
复制
library(splines)
autoplotly(ns(ggplot2::diamonds$price, df = 6))

知识补充

目前,autoplotly只支持对部分对象进行可视化,这份清单上列举了所有对象,可点击链接查看:

  • https://github.com/sinhrks/ggfortify#coverage[2]

结语

有了这个包,我们可以减少花在学习 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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 庄闪闪的R语言手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 绘图实战
  • 图形美化
  • 更多例子
  • 知识补充
  • 结语
    • 参考资料
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档