ggplot2進(jìn)行韋恩圖分析

網(wǎng)上繪制venn圖的案例有太多了,從傳統(tǒng)的venn圖到venn點(diǎn)圖;說白了就是找數(shù)據(jù)之間的相同與不同,下面通過一個(gè)小例子來說明

library(ggvenn)
a <- list(`Set1` = c(1, 3, 5, 7, 9),
          `Set2` = c(1, 5, 9, 13),
          `Set3` = c(1, 2, 8, 9),
          `Set4` = c(6, 7, 10, 12))
ggvenn(a, c("Set1", "Set2")) 

可以看到ggvenn軟件包很輕松的為我們進(jìn)行了數(shù)據(jù)統(tǒng)計(jì)及可視化,但是如果需要輸出數(shù)據(jù)之間共有與特有的清單該如何,請繼續(xù)往下看

首先我們先對圖形進(jìn)行美化

ggvenn(a,c("Set 1","Set 2"),show_percentage = T,
       stroke_color = "white",
       fill_color = c("#E41A1C","#1E90FF","#FF8C00",
                      "#4DAF4A","#984EA3"),
       set_name_color =c("#E41A1C","#1E90FF"))
image.png
  • show_percentage 展示百分比
  • stroke_color = "white" 設(shè)置線圈顏色
  • fill_color 設(shè)置填充顏色
  • set_name_color 設(shè)置集合名稱顏色

經(jīng)過上述操作可以看到set1與set2之間共有的數(shù)據(jù)有3個(gè),那如何知道這三個(gè)數(shù)據(jù)所對應(yīng)的內(nèi)容,可以使用dplyr包連接數(shù)據(jù)框的方式進(jìn)行輸出,參考:
https://mp.weixin.qq.com/s/elSBJJUAhf1DNKPPKkSbSg

inner_join函數(shù)合并兩個(gè)數(shù)據(jù)集的變量,保留共有的行

set1 <- a$Set1 %>% as.data.frame() %>% mutate(y1="A")
set2 <- a$Set2 %>% as.data.frame() %>% mutate(y2="B")

inner_join(set1,set2)

R中經(jīng)常遇到的問題就是格式的轉(zhuǎn)換,字符向量轉(zhuǎn)化為數(shù)據(jù)框,定義因子等

也可以通過以下代碼統(tǒng)計(jì)個(gè)數(shù)

inner_join(set1,set2) %>% summarise(count=n())

Joining, by = "."
  count
1     3

反連接保留左側(cè)數(shù)據(jù)中獨(dú)有的行

anti_join(set1,set2) %>% summarise(count=n())

Joining, by = "."
  count
1     2
anti_join(set2,set1) %>% summarise(count=n())

Joining, by = "."
  count
1     1

可以看到分析過程還是很簡單的,那是由于我們輸入的數(shù)據(jù)很整潔,屬于一個(gè)蘿卜一個(gè)坑,但是如果我們的數(shù)據(jù)不整潔,一個(gè)框中有多個(gè)元素怎么辦?

幸運(yùn)的是tidyverse中有一系列函數(shù)可以讓我們對數(shù)據(jù)進(jìn)行切分、過濾、去重等,這些才是我們需要學(xué)習(xí)的重點(diǎn),后面將會一一介紹

喜歡的小伙伴歡迎關(guān)注我的公眾號R語言數(shù)據(jù)分析指南,持續(xù)分享更多優(yōu)質(zhì)資源

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容