构建数据

set.seed(20190708)
genes <- paste("gene",1:1000,sep="")
x <- list(A = sample(genes,300), B = sample(genes,525), C = sample(genes,440),D = sample(genes,350))

使用ggVennDiagram绘制韦恩图

比较经典的韦恩图是使用venndiagram作图,但是缺点是不能使用pdf导出图形,对后期组图带来麻烦。因此使用基于ggplot2ggVennDiagrampackage就能方便导出pdf,以利于后期组图,绘制符合杂志社要求的图片。

library(ggVennDiagram)

绘图

最基础的图形

p1 <- ggVennDiagram(x)
p1

按照意向添加标签

p1 <- ggVennDiagram(x, category.names = c("A1","B1","C1","D1"))
p1

修改x轴显示的内容长度

如果标签的长度比较长,例如

p1 <- ggVennDiagram(x, category.names = c("a very long name","short name","name","another name"))
p1

需要进行如下调整

p1 + scale_x_continuous(expand = expansion(mult = .3))

改变标签的大小和颜色

ggVennDiagram(x,set_color = c("blue","black","red","green"))

ggVennDiagram(x,set_color = c("blue","black","red","green"),set_size = 8)

更改展示内容

只展示数量

ggVennDiagram(x, label = "count")

只展示百分比

ggVennDiagram(x, label = "percent")

百分比的位数

p <- ggVennDiagram(x, label_percent_digit = 2, label = "percent", edge_size = 0, edge_lty = "solid")
p + theme(legend.position = 'none')

去掉标签的背景颜色

有两种方法

ggVennDiagram(x, label = "count",label_alpha = 0,edge_lty = "solid", edge_size = 0)

ggVennDiagram(x, label = "count",label_geom = "text",edge_lty = "dashed", edge_size = 0)

更改填充颜色和边框颜色

library(ggplot2)
p <- ggVennDiagram(x,label_alpha = 0, label = "count", edge_size = 0.1, edge_lty = "solid")# Red Blue
p + scale_fill_distiller(palette = "PuOr", direction = -1) +scale_color_brewer(palette = "Set1")

因为是基于ggplot2的包,所以颜色设置和ggplot2是一致的,Palettes可选择的颜色如下

Diverging
BrBG, PiYG, PRGn, PuOr, RdBu, RdGy, RdYlBu, RdYlGn, Spectral

Qualitative
Accent, Dark2, Paired, Pastel1, Pastel2, Set1, Set2, Set3

Sequential
Blues, BuGn, BuPu, GnBu, Greens, Greys, Oranges, OrRd, PuBu, PuBuGn, PuRd, Purples, RdPu, Reds, YlGn, YlGnBu, YlOrBr, YlOrRd

direction设置颜色的方向,只有1和-1两个选项

RColorBrewer::display.brewer.all()

添加标题和副标题

既然是基于ggplot2的package,那么很多内容就是共通的

library(ggplot2)
p <- ggVennDiagram(x,label_alpha = 0, label = "count", edge_size = 0.1, edge_lty = "solid")# Red Blue
p + scale_fill_distiller(palette = "PuOr", direction = -1) +scale_color_brewer(palette = "Set1") +labs(title = "Venn Diagram",subtitle = "`ggVennDiagram`",caption = Sys.Date())

参考来源

https://mirror.linux.duke.edu/cran/web/packages/ggVennDiagram/vignettes/using-ggVennDiagram.html
要养成每次引用后,及时添加参考文献的来源,不然时间长了,技术来源就不清楚了

【R语言科研绘图】——韦恩图相关推荐

  1. 【R语言科研绘图】--- 柱状图

    R语言科研绘图--柱状图 柱状图 R语言科研绘图--柱状图 前言 一.柱状图 二.使用工具 1.所使用的包 2.数据特征 3.绘图 3.1 两组均值之间的比较 3.2 多组均值之间的比较 后记 前言 ...

  2. R语言如何绘制韦恩图(6)

    如何绘制韦恩图 1.什么是韦恩图? ​ 维恩图用于展示在不同的事物群组(集合)之间的数学或逻辑联系,尤其适合用来表示集合(或)类之间的"大致关系",它也常常被用来帮助推导(或理解推 ...

  3. R语言可视化分面图、多变量分组多水平t检验、可视化多变量分组多水平分面条形图(faceting bar plot)并添加显著性水平、在标签和绘图上边框之间添加15%的空格、添加抖动数据点

    R语言可视化分面图.多变量分组多水平t检验.可视化多变量分组多水平分面条形图(faceting bar plot)并添加显著性水平.在标签和绘图上边框之间添加15%的空格.添加抖动数据点 目录

  4. r语言绘制精美pcoa图_R语言绘制交互式热图

    热图 通过热图可以简单地聚合大量数据,并使用一种渐进的色带来优雅地表现,最终效果一般优于离散点的直接显示,可以很直观地展现空间数据的疏密程度或频率高低.但也由于很直观,热图在数据表现的准确性并不能保证 ...

  5. R语言画图/绘图/作图2

    R语言画图/绘图/作图2 动画气泡图 可以使用该gganimate包实现动画气泡图.它与气泡图相同,但是,您必须显示值如何在第五维(通常是时间)上变化. 要做的关键是将 设置为aes(frame)要在 ...

  6. R语言多层桑基图_绘制炫酷桑基图,R语言(networkD3包)能搞定?

    你知道如何使用R语言绘制桑基图吗? 小锐当然知道啦,并且教你 绘制酷炫的桑基图. 开课啦 桑基图(Sankey)是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小,其最明显的特征就是,始末 ...

  7. R语言如何绘制雷达图(32)

    1.什么是雷达图? ​ 雷达图是以从同一点开始的轴上表示的三个或更多个变量的二维图表的形式显示多变量数据的图形方法.轴的相对位置和角度通常是无信息的. 雷达图也称为网络图,蜘蛛图,星图,蜘蛛网图,不规 ...

  8. R语言如何绘制小提琴图(10)

    1.什么是小提琴图? 小提琴图是箱线图的变种,展示了任意位置的密度,通过小提琴图可以知道哪些位置的密度较高. 外部形状即为核密度估计(在概率论中用来估计未知的密度函数,属于非参数检验方法之一). 本文 ...

  9. R语言如何绘制桑葚图(28)

    1.什么是桑葚图? 桑基图(Sankey Diagram),即桑基能量分流图,也叫桑基能量平衡图.它是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小. 桑基图主要由边.流量和节点组成,其 ...

最新文章

  1. 第 3 次读 Effective Java,这 58 个技巧最值!
  2. 用Eclipse开发JavaWeb项目:错误信息 javax.servlet.http.HttpServlet was not found on the Java Build Path...
  3. NGTabBarController
  4. PMP知识点(七、资源管理)
  5. 算力用多少买多少,竞享实例太香了
  6. php批量getshell,任意文件上传引发的批量Getshell到服务器 - WileySec's Blog
  7. Linux下汇编语言学习笔记23 ---
  8. [ios]object-c math.h里的数学计算公式介绍
  9. 树莓派 —— 树莓派安装字体
  10. 微信小程序-数据库基础操作
  11. BCB 第三方组件/控件 ZZ
  12. c语言写股票交易软件,写股票软件
  13. Linux服务器恢复删除数据
  14. 与Windows更新的抗争-取消Windows系统自动更新
  15. codeblock找不到pthread
  16. 系统线性、时不变、因果判断
  17. 快速找到你的另一半——相亲小程序
  18. SQL SELECT(复杂查询) 之 等值查询 内外连接
  19. 书到用是方恨少......
  20. 撬动百亿智能办公市场 钉钉发布智能考勤机标准

热门文章

  1. 性感的数据可视化 —— 精讲桑基图、气泡图、南丁格尔玫瑰图
  2. 堆漏洞挖掘——__lib_malloc函数、_int_malloc函数、__lib_free函数源码详解
  3. Win10 模拟人生4(sims4)报错 “The sims4 is already running”(The sims4 已执行)的解决方案及分析过程(其他游戏突然无法运行也可参考)
  4. matlab 64位 mex 32,C Mex文件在64位Linux上崩溃了matlab,但没有32位窗口崩溃,但程序在Matlab外运行正常...
  5. latex中插入表格
  6. 微博春晚背后的技术故事
  7. codecombat之KithGard地牢19-37关代码分享
  8. 1.static 与 automatic 的“是与非”
  9. 当xcode里点运行出现treating unicode character as whites
  10. 服务器虚拟化需要多少钱,蓝盟观察,解析各厂商实施服务器虚拟化所需成本