您好,登录后才能下订单哦!
这篇文章给大家介绍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()
以上图表中加入了经济学人的主题及配色模板,动态效果依然还在,有了这种动态效果,展示呈现多维数据方面,省去了不少麻烦,特别是分类较多时,一时半会很难弄清楚某种分类的整体分布情况,而通过动态选择,可以很容易的过滤掉暂时无关的分类项对信息获取的障碍。
关于R语言可视化中ggplot携手plotly如何让图表灵动起来就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。