首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言可视化——ggplot携手plotly,让你的图表灵动起来!

R语言可视化——ggplot携手plotly,让你的图表灵动起来!

作者头像
数据小磨坊
发布2018-04-11 13:56:41
3.9K0
发布2018-04-11 13:56:41
举报
文章被收录于专栏:数据小魔方数据小魔方

这段时间一直在研究ggplot2这个神奇的可视化利器,可是ggplot2纵然所向披靡,唯独无法呈现动态效果!

最近发现R语言的官方CRAN中有一款名叫plotly的包,详细了解了下,这个plotly是基于js脚本语言开发的专用于动态交互可视化的利器,开发有在线版和桌面本,而且效果相当不错!

而这里提到的plotly包就是该机构专门针对R语言环境发布的可视化包(具有不仅R语言,给MATLAB和Python都留有接口),不但可以协助ggplot2包将静态图表动态化,而且拥有自己独特的作图函数语法(语法非常精炼,据说是参考ggplot的语法写的,基本上一看就懂)。

今天只涉及ggplot结合plotly而动态化图表的功能,暂不涉及plotly的独有作图函数。(主要是自己也正摸索中,找个合适的时间再跟大家分享)。

这个包因为是辅助ggplot2开发的,所以需要ggplot2包同时加载协同工作。

包下载及加载:

devtools::install_github("ropensci/plotly")

library("plotly")

library(ggplot2)

这里我将使用ggplot2的内置数据集diamonds先做出图表,然后使用plotly函数进行动态化。

为了更加明显的看出最终的动效,这里使用随机取样,只抽取500个记录。

set.seed(2333)

mydata <- mydata[sample(nrow(mydata), 500), ]

head(mydata)

ggplot(mydata,aes(carat,price,colour=color))+geom_point()

接下来是我们要重点关注的地方,以上使用ggplot函数制作的默认的散点图,是一张静态的不带任何交互效果的图表。

尽管ggplot的作者在图表背后针对默认的图表主题及背景做了深度美化,但是没有动态效果这一点儿着实让人感觉有点儿美中不足:

我所说的动态效果是指:当鼠标悬浮到任何一个数据点,立马会有弹出文本框显示该数据点的具体指标信息,当鼠标点击图例中的分类标识时,显示对应分类项下的数据点,而其他未被选中的数据点均会自动隐藏或者淡化(变成浅灰色)。这是我所理解的动态图表的最基础属性。

但是有了plotly包的辅助,ggplot所做出来的图表立马可是实现以上所述的功能:

而所需要的函数却极其简单:

ggplotly()

运行完以上代码,再次zoom你的图表,仔细观察你会发现,图表右上角多出了一行菜单,而且当你将鼠标悬浮在任意一个数据点上时,立马回弹出对应的文本信息对对应数据点进行详细注释。

更加不可思议的是,当你用鼠标单击右侧图例对应分类项,则图表中会对应只显示选中的分类项目数据点;

右上角的菜单中你可以自由选择将图表聚焦呈现、放大缩小、保存为图片等多种功能。

下面是我录制的一个动态小视频,可以感受下plotly带给ggplot的动态交互体验:

视频内容

而且这种动态效果机会不受ggplot图表类型及版面的限制,在分面情况下,动态效果依然如故:

ggplot(mydata,aes(carat,price,colour=color))+geom_point()+theme_economist()+scale_colour_economist()+facet_wrap(~cut)

ggplotly()

以上图表中加入了经济学人的主题及配色模板,动态效果依然还在,有了这种动态效果,展示呈现多维数据方面,省去了不少麻烦,特别是分类较多时,一时半会很难弄清楚某种分类的整体分布情况,而通过动态选择,可以很容易的过滤掉暂时无关的分类项对信息获取的障碍。

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

本文分享自 数据小魔方 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档