R,如何在colorfulVennPlot中更改数字的大小?

时间:2017-02-06 23:39:03

标签: r

我需要增加使用colorfulVennPlot创建的维恩图中数字的大小,如下例所示。非常感谢任何帮助。

library(colorfulVennPlot)
y <- c(37,29,6,232,121,77,25)
names(y) <- c("001","010","011","100","101","110","111")
labels <- c("A","B","C")
plot.new()
plotVenn3d(y, labels, Colors=rainbow(7), Title = "This is an example of a 3D Venn plot")

1 个答案:

答案 0 :(得分:1)

可以使用shrink参数调整标签和标题。但我没有看到在当前版本的plotVenn3d中更改维恩图中数字的方法。可能有一个更简单的解决方法,但一个选项是创建plotVenn3d函数的调整版本,并添加一个新参数来调整数字的大小。

要获取功能代码,只需在控制台中输入plotVenn3d即可。将代码复制到新的R脚本文件,并为函数指定一个新名称,例如myVenn。现在,转到函数的最后一行并从中更改它:

    for (i in 1:7) grid.text(values[i], centerLocations[i, 1], 
    centerLocations[i, 2])

到此:

    for (i in 1:7) grid.text(values[i], centerLocations[i, 1], 
    centerLocations[i, 2], gp=gpar(fontsize=num.size))

注意我们是如何添加一个新参数num.size来设置维恩图中数字的字体大小。现在回到我们声明函数参数的顶部,并从中更改它:

myVenn = function (x, labels = c("A", "B", "C"), 
                   Colors = c("red", "yellow", "orange", "lightblue", "purple", 
                              "green", "grey"), 
                   Title = NULL, shrink = 1, rot = 0)

到此(为了将num.size参数添加到函数声明中):

myVenn = function (x, labels = c("A", "B", "C"), 
                   Colors = c("red", "yellow", "orange", "lightblue", "purple", 
                              "green", "grey"), 
                   Title = NULL, shrink = 1, rot = 0, num.size=20)

运行新函数的代码以将函数加载到全局环境中。现在,您可以使用myVenn绘制数据并使用num.size的值,直到获得您喜欢的内容。

例如:

myVenn(y, labels, Colors=rainbow(7), Title = "This is an example of a 3D Venn plot", 
       num.size=50)

enter image description here