【R语言】【可视化】 之 维恩图

维恩图:也叫文氏图,用于显示元素集合重叠区域的图示。
本文展示2种方法:

  • VennDiagram包

VennDiagram包的缺点是区域大小不能与实际对比一致

install.packages("VennDiagram")
library("VennDiagram")
Length_A <- 54.07
Length_B <- 38.86
Length_C <- 3.55
Length_AB <- 2.31
Length_BC <- 0.24
Length_AC <- 0.71
Length_ABC <- 0.07
require(VennDiagram)
venn.diagram(list(B = 1:1800, A = 1571:2020),fill = c("red", "green"),
             alpha = c(0.5, 0.5), cex = 2,cat.fontface = 4,lty =2, fontfamily =3)
             , filename = "trial2.png")

draw.triple.venn(area1=Length_A, area2=Length_B, area3=Length_C
                 ,n12=Length_AB, n23=Length_BC, n13=Length_AC, n123=Length_ABC
                 ,category = c('天猫','线下','京东')
                 ,col=c('red','green','blue'),fill=c('red','green','blue')
                 ,cat.col=c('red','green','blue')
                 ,reverse = FALSE
                 ,euler.d = TRUE
                 ,scaled = TRUE
                 ,cex = c(4,2,1,1,1,1,1)
                 )

vennDiagram结果

  • venneuler包
    venneuler包的缺点是重叠比例标示需要自己添加
 # install.packages('venneuler')
require(venneuler)
vd <- venneuler(c(A=0.3, B=0.3, C=1.1, "A&B"=0.1, "A&C"=0.2, "B&C"=0.1 ,"A&B&C"=0.1))
plot(vd)

这里写图片描述

自己添加标示:

require(venneuler)
vd <- venneuler(c(A=0.3, B=0.3, C=1.1, "A&B"=0.1, "A&C"=0.2, "B&C"=0.1 ,"A&B&C"=0.1))
vd$labels <- c(
  paste(0.3+0.1+0.2+0.1, "\n", "京东"),
  paste( "淘宝", "\n", 0.3+0.1+0.1+0.1),
  paste(1.1+0.2+0.1+0.1, "\n", "线下")
)
txt_centers <- vd$centers
txt_centers <- rbind(colMeans(txt_centers[1:2,]), colMeans(txt_centers[c(1,3),]), colMeans(txt_centers[2:3,]), colMeans(txt_centers[1:3,]))
plot(vd)
txt <- c(0.1, 0.2, 0.1, 0.1)
sapply(1:4, function(i) text(txt_centers[i,1], txt_centers[i,2], txt[i]))

这里写图片描述

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值