網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
前言
介紹一個(gè)R包UpSetR,專(zhuān)門(mén)用來(lái)集合可視化,當(dāng)多集合的韋恩圖不容易看的時(shí)候,就是它大展身手的時(shí)候了。
一、R包及數(shù)據(jù)
#安裝及加載R包 #install.packages("UpSetR") library(UpSetR) #載入數(shù)據(jù)集 data <- read.csv("upSet.csv",header=TRUE) #先大致瀏覽一下該數(shù)據(jù)集,數(shù)據(jù)集太長(zhǎng),就只看前幾列 head(data[,1:6],6) #View(data) #彈出窗口,可查看數(shù)據(jù)
二、upset()函數(shù)
使用UpsetR包里面的upset()函數(shù)繪制集合可視化圖形。
1)基本參數(shù)
upset(data, sets = c("Action", "Adventure", "Comedy", "Drama", "Fantasy" , "Children","Crime"),#查看特定的幾個(gè)集合 mb.ratio = c(0.55, 0.45),#控制上方條形圖以及下方點(diǎn)圖的比例 order.by = "freq", #如何排序,這里freq表示從大到小排序展示 keep.order = TRUE, #keep.order按照sets參數(shù)的順序排序 number.angles = 30, #調(diào)整柱形圖上數(shù)字角度 point.size = 2, line.size = 1, #點(diǎn)和線(xiàn)的大小 mainbar.y.label = "Genre Intersections", sets.x.label = "Movies Per Genre", #坐標(biāo)軸名稱(chēng) text.scale = c(1.3, 1.3, 1, 1, 1.5, 1)) #六個(gè)數(shù)字,分別控制c(intersection size title, intersection size tick labels, set size title, set size tick labels, set names, numbers above bars)
2)queries參數(shù)
queries參數(shù)分為四個(gè)部分:query, param, color, active;
query: 指定哪個(gè)query,UpSetR有內(nèi)置,也可以自定義;
param: list, query作用于哪個(gè)交集
color:每個(gè)query都是一個(gè)list,里面可以設(shè)置顏色,沒(méi)設(shè)置的話(huà)將調(diào)用包里默認(rèn)的調(diào)色板;
active:被指定的條形圖:TRUE顯示顏色,F(xiàn)ALSE在條形圖頂端顯示三角形;
upset(data, main.bar.color = "black", queries = list(list(query = intersects, ? #UpSetR 內(nèi)置的intersects query params = list("Drama"), ##指定作用的交集 color = "red", ##設(shè)置顏色,未設(shè)置會(huì)調(diào)用默認(rèn)調(diào)色板 active = F, ? # TRUE:條形圖被顏色覆蓋,F(xiàn)ALSE:條形圖頂端顯示三角形 query.name = "Drama"), # 添加query圖例 list(query = intersects, ?params = list("Action", "Drama"), active = T,query.name = "Emotional action"), list(query = intersects, ?params = list("Drama", "Comedy", "Action"), color = "orange", active = T)),query.legend = "top")
3)attribute.plots參數(shù)
添加屬性圖,內(nèi)置有柱形圖、散點(diǎn)圖、熱圖等
3.1 添加柱形圖和散點(diǎn)圖
upset(data, main.bar.color = "black", queries = list(list(query = intersects, params = list("Drama"), color = "red", active = F, ?query.name = "Drama"), list(query = intersects, ?params = list("Action", "Drama"), active = T,query.name = "Emotional action"), list(query = intersects, ?params = list("Drama", "Comedy", "Action"), color = "orange", active = T)), ? attribute.plots = list(gridrows = 45, #添加屬性圖 plots = list( list(plot = scatter_plot, #散點(diǎn)圖 x = "ReleaseDate", y = "AvgRating", #橫縱軸的變量 queries = T), #T 則顯示出上面queries定義的顏色 list(plot = histogram, x = "ReleaseDate", queries = F)), ncols = 2), # 添加的圖分兩列 query.legend = "top") #query圖例在最上方
3.2 添加箱線(xiàn)圖
每次最多添加兩個(gè)箱線(xiàn)圖
upset(movies, boxplot.summary = c("AvgRating", "ReleaseDate"))
3.3 添加密度曲線(xiàn)圖
因默認(rèn)屬性圖中沒(méi)有密度曲線(xiàn),需要自定義plot函數(shù)
#自定義密度曲線(xiàn) another.plot <- function(data, x, y) { ? ?data$decades <- round_any(as.integer(unlist(data[y])), 10, ceiling) ? ?data <- data[which(data$decades >= 1970), ] ? ?myplot <- (ggplot(data, aes_string(x = x)) + geom_density(aes(fill = factor(decades)), ? ? ? ?alpha = 0.4) + theme(plot.margin = unit(c(0, 0, 0, 0), "cm"), legend.key.size = unit(0.4, "cm"))) }
upset(data, main.bar.color = "black", mb.ratio = c(0.5, 0.5), queries = list(list(query = intersects, ? ?params = list("Drama"), color = "red", active = F), list(query = intersects, ? ?params = list("Action", "Drama"), active = T), list(query = intersects, ? ?params = list("Drama", "Comedy", "Action"), color = "orange", active = T)), ? ?attribute.plots = list(gridrows = 50, plots = list(list(plot = histogram, ? ? ? ?x = "ReleaseDate", queries = F), list(plot = scatter_plot, x = "ReleaseDate", ? ? ? ?y = "AvgRating", queries = T), list(plot = another.plot, x = "AvgRating", ? ? ? ?y = "ReleaseDate", queries = F)), ncols = 3))
參考
R語(yǔ)言可視化
原文鏈接:http://166d.cn/85Zo
相關(guān)推薦
- 2022-02-17 ERROR: but there is no HDFS_NAMENODE_USER defined.
- 2022-02-26 Uncaught RangeError: Maximum call stack size excee
- 2022-07-01 Oracle的約束介紹與約束維護(hù)_oracle
- 2023-02-04 Qt信號(hào)與槽知識(shí)點(diǎn)總結(jié)歸納_C 語(yǔ)言
- 2023-03-23 python調(diào)用excel_vba的兩種實(shí)現(xiàn)方式_python
- 2022-03-27 C語(yǔ)言中scanf與scnaf_s函數(shù)詳解_C 語(yǔ)言
- 2022-06-18 C#使用Monitor類(lèi)實(shí)現(xiàn)線(xiàn)程同步_C#教程
- 2022-08-22 Python3.9用pip安裝wordcloud庫(kù)失敗的解決過(guò)程_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支