R包VennDiagram::venn.diagram 自定义韦恩图输出图片
1.问题
在linux系统下,想要将venn.diagram函数画出的venn输出在当前目录下,结果是函数里面的filename定义不能输出图片,但是在Rstidio中可以生成图片到本地,使用的原代码:
无法生成图片!!!
venn.diagram(
x = list(a_name, b_name),
category.names = c(diff_a , diff_b),
lwd = 1, # 圈线条粗细 1 2 3 4 5
lty = 1, # 线条类型, 1 实线, 2 虚线, blank 无线条
#fill = color, # 填充色
col = c("red", 'green'), # 线条色
filename = "test.png",
output=TRUE
)
2.解决办法
现将filename用空值Null赋值,不能用“”代替;
imagetype 有三种类型可以选择png、svg、tiff,默认是tiff;
调用grid:grid.draw()画图
调用pdf生成图片
代码
p<-venn.diagram(
x = list(a_name, b_name),
category.names = c(diff_a , diff_b),
lwd = 1, # 圈线条粗细 1 2 3 4 5
lty = 1, # 线条类型, 1 实线, 2 虚线, blank 无线条
#fill = color, # 填充色
col = c("red", 'green'), # 线条色
#imagetype = "svg",
filename = NULL,
output=TRUE)
pdf("venn.pdf")
grid.draw(p)
dev.off()
3.个人猜想
1.其他画图函数具有filename的,一般都会有imagetype,可以选择;另外filename=“”和filename=NULL意思是不同的。
2.关闭venn函数内部画图的功能之后,需要将函数的图片赋值之后,需要调用其他画图函数。
参考:
1.venn.diagram如何保存pdf格式文件
2.使用 R:VennDiagram 包时,将图片生成在Plots窗口而不保存图片文件到本地
3.grid.draw 绘制一个网格grob