ploylt原来是一款用来做数据分析和可视化的在线平台,后来有人开发了一些语言(Python、R、Matlab等)的API,在R里就是plotly包了。plotly已经发布在CRAN上了,要想安装,仅需:

install.packages('plotly')

这里说一下旭日图(sunburst chart)。旭日图是在饼图的基础上拓展的(关于摒弃饼图暂且不考虑),主要展示分类变量的比例,并且将分类变量进行了分级,每一级的占总体的比例一览无余。R语言中有专门绘制旭日图的包:sunburstR,然而是绘出的图形是静态的。plotly作为强大的交互式可视化包,当然也有这个功能,并且点击父级可以仅展示该父级及其子级,方便用户探索各级的比例以及父级的子级占该父级的比例(以下例子均来自官网):

library(plotly)
fig <- plot_ly(#定义所有级别各类的标签labels = c("Eve", "Cain", "Seth", "Enos", "Noam", "Abel", "Awan", "Enoch", "Azura"),#定义所有级别各类的父级,与上面定义的标签一一对应parents = c("", "Eve", "Eve", "Seth", "Seth", "Eve", "Eve", "Awan", "Eve"),#定义各分类的值(一一对应)values = c(10, 14, 12, 10, 2, 6, 6, 4, 4),#指定图表类型:sunbursttype = 'sunburst'
)
#输出
fig

library(plotly)
fig <- plot_ly(labels = c("Eve", "Cain", "Seth", "Enos", "Noam", "Abel", "Awan", "Enoch", "Azura"),parents = c("", "Eve", "Eve", "Seth", "Seth", "Eve", "Eve", "Awan", "Eve"),values = c(65, 14, 12, 10, 2, 6, 6, 4, 4),type = 'sunburst',#设置子级的值:total。也就是子级的图形长度与 其值与父级的值的比例 成正比。#注意之前那张图里没有设定这个,父级'Seth'及其子级'Noam'和'Enos'就不符合这个设定branchvalues = 'total'
)
fig

library(plotly)
d <- data.frame(#定义id,,可以理解为主键ids = c("North America", "Europe", "Australia", "North America - Football", "Soccer","North America - Rugby", "Europe - Football", "Rugby","Europe - American Football","Australia - Football", "Association","Australian Rules", "Autstralia - American Football", "Australia - Rugby","Rugby League", "Rugby Union"),#定义标签,即显示的文本。这里面的 <br> 是HTML的语法,表示换行labels = c("North<br>America", "Europe", "Australia", "Football", "Soccer", "Rugby","Football", "Rugby", "American<br>Football", "Football", "Association","Australian<br>Rules", "American<br>Football", "Rugby", "Rugby<br>League","Rugby<br>Union"),#定义父级parents = c("", "", "", "North America", "North America", "North America", "Europe","Europe", "Europe","Australia", "Australia - Football", "Australia - Football","Australia - Football", "Australia - Football", "Australia - Rugby","Australia - Rugby"),stringsAsFactors = FALSE
)
fig <- plot_ly(d, ids = ~ids, labels = ~labels, parents = ~parents, type = 'sunburst')fig

这里gif上传失败,只好mp4了https://www.zhihu.com/video/1220318292180885504

各级各类之间来回切换,是不是很有意思!

df = read.csv('https://raw.githubusercontent.com/plotly/datasets/718417069ead87650b90472464c7565dc8c2cb1c/coffee-flavors.csv')
fig <- plot_ly()
fig <- fig %>% add_trace(type='sunburst',ids=df$ids,labels=df$labels,parents=df$parents,#设置最大深度为2,也就是最多只展示两级maxdepth=2,#控制扇区内文本的方向,这里设置为radial(径向的)insidetextorientation='radial'
)
fig

https://www.zhihu.com/video/1220319650493542400

可以看到,设置了最大深度为2后,最多只显示2级。但是数据其实是有三级的,点击第二级之后就可以看到第三级了。如果要想显示所有层级,可以把上面代码中的'maxdepth = 2'删去,但这样图形就显得很乱,甚至会有卡顿的情况……

https://www.zhihu.com/video/1220320639200260096

library(plotly)
d1 <- read.csv('https://raw.githubusercontent.com/plotly/datasets/master/coffee-flavors.csv')
d2 <- read.csv('https://raw.githubusercontent.com/plotly/datasets/718417069ead87650b90472464c7565dc8c2cb1c/sunburst-coffee-flavors-complete.csv')
fig <- plot_ly()
fig <- fig %>%#添加轨迹,相当于ggplot2的图层geom。这里是定义子图1add_trace(ids = d1$ids,labels = d1$labels,parents = d1$parents,#定义轨迹的类型:sunbursttype = 'sunburst',maxdepth = 2,#子图1放在第1列(plotly以0开始计数)domain = list(column = 0))
fig <- fig %>%#子图2add_trace(ids = d2$ids,labels = d2$labels,parents = d2$parents,type = 'sunburst',maxdepth = 3,#子图放在第2列domain = list(column = 1))
fig <- fig %>%#定义样式layout(#网格:2列1行grid = list(columns =2, rows = 1),margin = list(l = 0, r = 0, b = 0, t = 0),#颜色sunburstcolorway = c("#636efa","#EF553B","#00cc96","#ab63fa","#19d3f3","#e763fa", "#FECB52","#FFA15A","#FF6692","#B6E880"),extendsunburstcolors = TRUE)
fig

https://www.zhihu.com/video/1220321711524315136

是不是很有意思?R语言可视化不止ggplot2及其65个扩展包(截至目前),还有更多值得探索,这篇文章就介绍到这里了!

r语言siggenes包_初探R语言可视化交互式包plotly——旭日图(Sunburst Chart)相关推荐

  1. r语言 bsda包_使用R语言creditmodel包进行Vintage分析或留存率分析

    1 什么是vintage分析? Vintage分析(账龄分析法)被广泛应用于信用卡及信贷行业,这个概念起源于葡萄酒,即不同年份出产的葡萄酒的品质有差异,那么不同时期开户或者放款的资产质量也有差异,其核 ...

  2. r语言pls分析_基于R语言的PLS算法的实现解读.pptx

    基于R语言的PLS算法的实现及研究 目录 使用的开发工具 偏最小二乘的设计思想 基于R语言.MATLAB的偏最小二乘的实现 通径分析 测定系数 实验分析 使用的开发工具 R 语言(R是用于统计分析.绘 ...

  3. c语言有趣代码_为什么C语言永远不会过时?

    直至今天还有人在喊着C语言都过时的语言了,还有什么值得去学的,看现在的python,php等语言现在用起来多简单,谁还去学习老掉牙的C语言,事实真的是这样的吗?笔者作为专门下载了这两种语言的底层源码. ...

  4. go语言打印日期_基于 Go 语言开发在线论坛(八):消息、视图及日期时间本地化...

    我们接着上篇在线论坛的进度,由于之前所有页面和消息文本都是英文的,而我们开发的应用基本都是面向中文用户的,所以需要对项目进行本地化,今天正好借着这个入门项目给大家介绍下如何在 Go Web 应用中进行 ...

  5. JAVA语言教学重点_《JAVA语言》教学大纲

    <语言>教学大纲 课程代码: 课程总学分实验学分: 课程总学时数实验学时数: 一.课程目标 课程目的是培养学生对面向对象编程技术的理解和掌握,加强对学生"计算机编程思维" ...

  6. C语言初阶_初识C语言(1)

    凡是过往,皆为序章 期末考试结束了,真是感慨良多啊...... C语言编程题大家都做对了多少呢? 不管怎么样,都已经过去了.不管你学得怎么样,都可以在接下来的时间里,我们一起重新回顾一遍C语言初阶的知 ...

  7. java 网络抓包_基于java的网络抓包方法

    本实验是用java实现的网络抓包程序,在windows环境下安装winpcap4.0和jpcap6.0后,下载eclipse和jigloo插件(一种在eclipse底下作图形化开发的工具),将其安装好 ...

  8. osgi导出包和非导出包_了解如何解决OSGI捆绑包

    osgi导出包和非导出包 我想回顾一下OSGI包如何解决并使用Apache Karaf进行演示. Karaf是基于Apache Felix内核的功能齐全的OSGI容器,并且是Apache Servic ...

  9. 我的世界java版怎么加整合包_我的世界完美世界整合包

    软件介绍 我的世界完美世界整合包是一款综合评分完美的mod合集,装备拔刀剑在三个特色世界中击败世界BOSS穿越勇者的晋级之路,无数冒险家梦想的自由探险欢迎多人组队一起来挑战,兴趣极限满足你的好奇. 我 ...

最新文章

  1. sql server 数据库模型 备份 恢复 总结 备份脚本
  2. 在 VS Code 里逛知乎、发文章?Zhihu on VSCode 来啦!重新定义内容创作!
  3. l麒麟安装oracle,中标麒麟5.8x64下64bitOracle11gR2安装配置手册.docx
  4. java中substring的用法
  5. 【安全系类之设计】应用安全相关
  6. x86汇编语言-从实模式到保护模式----第五章
  7. freemarker 去掉最后一个逗号_从零开始做一个SLG游戏(六)游戏系统以及配置表...
  8. android点击下拉历史记录,uni-app,社交应用中,聊天页面下拉onPullDownRefresh获取历史消息,数据合并之后,滚动到下拉之前的位置,页面看不见闪动,完美解决...
  9. python将图片转换为字符_python如何将图片转换为字符图片
  10. PSCAD X4.6.2 免费下载
  11. yyuc php,php版微信公众平台实现预约提交后发送email的方法
  12. 局域网显示服务器未启动,“Workstation服务器无法启动,所以上不连局域网解决方案”的解决方案...
  13. Android SDK Tools 历史版本下载
  14. Ubuntu系统观看IPV6电视的方法详解
  15. 2021年数据泄露成本报告解读
  16. 虾扑 erp 神技能分析,shopee 卖家的得意助手
  17. 视频教程-2020年软考网络规划设计师案例分析软考视频教程-软考
  18. vulnhub-Brainpan (考点:windows exe和linux elf下的两种缓冲区溢出)
  19. js基础知识:es6中,当对象中的key名称为一个变量时,需要用`[]`括起来
  20. ChatGLM-6B论文代码笔记

热门文章

  1. 准确率可提升50%以上,Facebook用迁移学习改进代码自动补全
  2. VS Code竟然能约会,找对象不看脸,看编程水平
  3. 记录理解程度、一篇至少读3遍,吴恩达建议这样读论文
  4. 学习观察神经网络:可视化整个模型训练中卷积层的激活
  5. 卧槽!看不懂这些动图,你不配做个程序员
  6. 放弃深圳1.5万月薪,我准备回农村了!
  7. 自然语言处理(NLP)之pyltp的介绍与使用(中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注)
  8. 通过application.properties修改打开网页的方式
  9. 清华团队将Transformer用到3D点云分割
  10. 百度关键词研究: 应避免的5个错误!