upt

更新时间:2022-11-24 03:42:21 阅读: 评论:0


2022年11月24日发(作者:毛的组词)

R语⾔可视化之UpSetR包

具体内容移步我的博客

[图⽚上传失败...(image-3ecfcc-75)]

简介

集合可视化我们⽤得最多的是韦恩图,韦恩图在集合数少的时候是很好⽤的,但是当集合数多⽐如五个以上的时候那就会看花眼了,⽐如下⾯这副

含有6个集合韦恩图,是发表在Nature上的⽂章⾥的,漂亮是漂亮,但是眼都快看花了。

banana

今天介绍⼀个R包UpSetR,专门⽤来集合可视化,来源于UpSet,Python⾥⾯也有⼀个相似的包py-upt。此外还有个UpSetRshinyapp以

及源代码.

安装

两种⽅式安装:

#从CRAN安装

es("UpSetR")

#从Github上安装

devtools::install_github("hms-dbmi/UpSetR")

数据导⼊

UpSetR提供了两个函数

fromList

以及

fromExpression

将数据转换为UptR适⽤的数据格式。

#fromList

listinput<-list(one=c(1,2,3,5,7,8,11,12,13),two=c(1,2,4,5,

10),three=c(1,5,6,7,8,9,10,12,13))

#fromExpression

expressionInput<-c(one=2,two=1,three=2,`one&two`=1,`one&three`=4,

`two&three`=1,`one&two&three`=2)

接下来就可以绘制绘制图形了

library(UpSetR)

upt(fromList(listinput),="freq")

#下⾯绘制的图形等同于上图

upt(fromExpression(expressionInput),="freq")

[图⽚上传失败...(image-72066a-75)]

参数详解

下⾯所有的例⼦都将使⽤UpSetR内置的数据集

movies

来绘制。

#导⼊数据

movies<-(("extdata","",package="UpSetR"),header=TRUE,p=";")

#先⼤致浏览⼀下该数据集,数据集太长,就只看前⼏列

knitr::kable(head(movies[,1:10]))

[图⽚上传失败...(image-bb479-75)]

该数据集展⽰的是电影名(name)、发⾏时间(ReleaDate)以及电影类型,多了去了就不详讲了,⾃个可以看去。

UptR绘制集合可视化图形使⽤函数

upt()

upt(movies,nts=6,=30,=2,=1,="GenreInterctions",="MoviesPerGenre",=c(1.3,

[图⽚上传失败...(image-316b49-75)]

解释⼀下上⾯部分参数:

nts:顾名思义,就是展⽰⼏个集合,

movies

数据集由20⼏个集合,不可能全部展⽰,另外从图中可以看出,这6个集合应该不是按顺序选

择的。

:柱⼦上的数字看到了吧,这个参数就是调整数字⾓度的,可有可⽆的

/:坐标轴名称

():有六个数字,分别控制c(interctionsizetitle,interctionsizeticklabels,tsizetitle,tsizeticklabels,t

names,numbersabovebars)。

很多时候我们想要看特定的⼏个集合,UpSetR满⾜我们的需求。

upt(movies,ts=c("Action","Adventure","Comedy","Drama","Mystery",

"Thriller","Romance","War","Western"),=c(0.55,0.45),="freq")

[图⽚上传失败...(image-148c9-75)]

⽂中的参数:

:控制上⽅条形图以及下⽅点图的⽐例

:如何排序,这⾥

freq

表⽰从⼤到⼩排序展⽰,其他选项有

degree

以及先按

freq

再按

degree

排序。

各个变量也可以通过参数

来排序

upt(movies,ts=c("Action","Adventure","Comedy","Drama","Mystery",

"Thriller","Romance","War","Western"),=c(0.55,0.45),="freq",

=TRUE)

[图⽚上传失败...(image-b1f3d6-75)]

也可以按

group

进⾏展⽰,这图展⽰的就是按各个变量⾃⾝、两个交集、三个交集...依次展⽰。参数

cutoff

控制每个

group

显⽰⼏个交集。

参数

intercts

控制总共显⽰⼏个交集。

upt(movies,nintercts=70,="ts",cutoff=7)

[图⽚上传失败...(image-da4d6b-75)]

还有很多参数⽐如控制颜⾊的参数,点、线⼤⼩等,具体可查看?upt

queries参数

queries参数分为四个部分:

query

,

param

,

color

,

active

.

query:指定哪个query,UpSetR有内置的,也可以⾃定义,说到底就是⼀个查询函数

param:list,query作⽤于哪个交集

color:每个query都是⼀个list,⾥⾯可以设置颜⾊,没设置的话将调⽤包⾥默认的调⾊板

active:被指定的条形图是否需要颜⾊覆盖,TRUE的话显⽰颜⾊,FALSE的话则在条形图顶端显⽰三⾓形

内置的interctsquery

upt(movies,queries=list(list(query=intercts,params=list("Drama","Comedy","Action"),color="orange",active=T),

list(query=intercts,params=list("Drama"),color="red",active=F),

list(query=intercts,params=list("Action","Drama"),active=T)))

[图⽚上传失败...(image-94a27a-75)]

内置的elementsquery

此query可以可视化特定交集在不同条件下的情况

upt(movies,queries=list(list(query=elements,params=list("AvgRating",3.5,4.1),color="blue",active=T),

list(query=elements,params=list("ReleaDate",1980,1990,2000),color="red",active=F)))

[图⽚上传失败...(image-46d85d-75)]

⾃定义⼀个query

myfunc<-function(row,relea,rating){

newdata<-(row["ReleaDate"]%in%relea)&(row["AvgRating"]>rating)

}

upt(movies,queries=list(list(query=myfunc,params=list(c(1950,1960,1990,2000),3.0),color="red",active=T)))

[图⽚上传失败...(image-42e44a-75)]

添加query图例

upt(movies,="top",queries=list(list(query=intercts,

params=list("Drama","Comedy","Action"),color="orange",active=T,

="Funnyaction"),list(query=intercts,params=list("Drama"),

color="red",active=F),list(query=intercts,params=list("Action",

"Drama"),active=T,="Emotionalaction")))

[图⽚上传失败...(image-31b478-75)]

参数

主要是⽤于添加属性图,内置有柱形图、散点图、热图等

柱形图

upt(movies,="black",queries=list(list(query=intercts,

params=list("Drama"),active=T)),=list(gridrows=50,

plots=list(list(plot=histogram,x="ReleaDate",queries=F),list(plot=histogram,

x="AvgRating",queries=T)),ncols=2))

[图⽚上传失败...(image-e78a92-75)]

散点图

upt(movies,="black",queries=list(list(query=intercts,

params=list("Drama"),color="red",active=F),list(query=intercts,

params=list("Action","Drama"),active=T),list(query=intercts,

params=list("Drama","Comedy","Action"),color="orange",active=T)),

=list(gridrows=45,plots=list(list(plot=scatter_plot,

x="ReleaDate",y="AvgRating",queries=T),list(plot=scatter_plot,

x="AvgRating",y="Watches",queries=F)),ncols=2),="bottom")

[图⽚上传失败...(image-c7cf8c-75)]

箱线图

箱线图可以展⽰数据的分布,通过参数

y

控制,最多可以⼀次性显⽰两个箱线图

upt(movies,y=c("AvgRating","ReleaDate"))

[图⽚上传失败...(image-e67e00-75)]

还有⼀个⼗分重要的功能IncorporatingSetMetadata这⾥就不讲了,有兴趣的可以参考这份⽂档

SessionInfo

ssionInfo()

##Rversion3.4.2(2017-09-28)

##Platform:x86_64-w64-mingw32/x64(64-bit)

##Runningunder:Windows10x64(build15063)

Matrixproducts:default

locale:

##[1]LC_COLLATE=Chine(Simplified)_China.936

##[2]LC_CTYPE=Chine(Simplified)_China.936

##[3]LC_MONETARY=Chine(Simplified)_China.936

##[4]LC_NUMERIC=C

##[5]LC_TIME=Chine(Simplified)_China.936

attachedbapackages:

##[1]statsgraphicsgrDevicesutilsdatatsmethodsba

otherattachedpackages:

##[1]UpSetR_1.3.3

loadedviaanamespace(andnotattached):

##[1]Rcpp_0.12.13knitr_1.17magrittr_1.5munll_0.4.3

##[5]colorspace_1.3-2rlang_0.1.2stringr_1.2.0highr_0.6

##[9]plyr_1.8.4tools_3.4.2grid_3.4.2gtable_0.2.0

##[13]htmltools_0.3.6yaml_2.1.14lazyeval_0.2.0rprojroot_1.2

##[17]digest_0.6.12tibble_1.3.4gridExtra_2.3ggplot2_2.2.1

##[21]evaluate_0.10.1rmarkdown_1.6labeling_0.3stringi_1.1.5

##[25]compiler_3.4.2scales_0.5.0backports_1.1.1

联系⽅式:

个⼈简介:

严涛

浙江⼤学作物遗传育种在读研究⽣(⽣物信息学⽅向)

伪码农,R语⾔爱好者,爱开源

本文发布于:2022-11-24 03:42:21,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/9671.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

下一篇:rise的过去式
标签:upset
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图