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

这段时间一直在研究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()

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

原文发布于微信公众号 - 数据小魔方(datamofang)

原文发表时间:2016-10-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏日常学python

爬取《悲伤逆流成河》猫眼信息 | 郭敬明五年电影最动人之作

知道《悲伤逆流成河》上映还是在qq空间看见学弟发了说说,突然想起初中追小四的书,每天看到晚上10点多,昨天看了枪版的《悲伤逆流成河》,整个故事情节几乎和小说一模...

2272
来自专栏吉浦迅科技

让NVIDIA Jetson AGX Xavier火力全开的秘密

之前我们写过让Jetson TX2火力全开的秘密,让大家知道命令行工具nvpmodel能够定义一组参数,从而有效地定义给定功率的性能。

3.4K3
来自专栏数据小魔方

R语言可视化——ggplot图表系统中的辅助线

在之前的推送中,曾经有过一篇介绍excel图表辅助线的制作方法,其中用到的技巧五花八门、令人眼花缭乱。 而ggplot图表系统中的辅助线添加起来却异常简单,非常...

39713
来自专栏区块链源码分析

用零知识证明解决投票安全

我们经常会遇到需要给别人投票的情况,比如有些公司会组织员工给领导做反向打分,但是往往员工都不敢“真心实意”的打分,为什么呢?归根结底是害怕所谓的匿名不是真匿名...

45318
来自专栏AI研习社

刷爆朋友圈的 deepfakes 视频人物换脸是怎样炼成的?

最近,一个名叫deepfakes的技术火了,这是一个可以给视频人物换脸的技术。 这张图片源自雷神三预告片索尔大战浩克的片段,将索尔的脸替换为了Trump的,这个...

6235
来自专栏DeveWork

为你的WordPress 主题添加结构化数据/丰富文本摘要,高亮搜索结果(上)

对于SEO ,咱们这些业余人士只能是从技术的角度来驾驭。网站经营的前期需要做好搜索引擎优化,对于WordPress 网站,其实最好的方式是在WordPress ...

3406
来自专栏即时通讯技术

全面掌握移动端主流图片格式的特点、性能、调优等

图片通常是移动端应用流量耗费最多的部分,并且占据着重要的视觉空间。以大家最常用的即时通讯IM应用为例,应用中存在大量的图片数据往来(比如图片消息、用户相册、用户...

1502
来自专栏数据科学与人工智能

【陆勤践行】小白一天之内玩转机器学习!

很多朋友都对机器学习心存各种敬畏之心。实际上,机器学习更多的也不过是我们“统计学习”的扩展延伸和行业实现的具体化。无非是通过样本数据发现规律性的东西而已。何况“...

1985
来自专栏玉树芝兰

如何用 R 绘制动态统计图?

漫长的演化史上,人类的感官只要能有效发现食物(包含猎物),快速捕获危险信号(例如捕食者逼近),和同类高效交流(使用声音、表情或肢体语言)就大概率可以在残酷的自然...

1392
来自专栏何俊林

一个跑步时用的轨迹记录和计步器APP

今天推荐是一款像咕咚一样计步和轨迹记录app,作者zhenqianfan github:https://github.com/Alost/TrackPedo...

45810

扫码关注云+社区

领取腾讯云代金券