【发布时间】:2017-10-17 01:05:57
【问题描述】:
我正在使用函数draw.triple.venn()library(VennDiagram) 绘制维恩图。这是我在 R 中的代码:
g = draw.triple.venn(area1 = 4.1, area2 = 5.6, area3 = 15.9, n12 = 1.3, n23 = 4.2, n13 = 2.3, n123 = 1.2, category = c("Landuse", "Environment", "Space"), fill = c("darkgray", "gray", "lightgrey"), print.mode = c("percent", "percent", "percent"), sigdig=2, ind = T)
grid.arrange(gTree(children=g))
这是当前的图:
现在,我想同时显示每个分数的“百分比”和“原始”。在包描述中它指出:“print.mode”可以是“raw”或“percent”。这是打印数字的格式。可以传入一个向量,第二个元素打印在第一个元素的下方。
这似乎表明“原始”和“百分比”可以一起显示。有关如何执行此操作的任何建议?
另外,我怎样才能控制一致使用的位数,即有 56.0%(而不是 56%)和 0.5%(而不是 0.53%)?我设置了 sigdig=2,我认为这会强制该空间保持一致。
此外,有没有办法控制每个部分的填充颜色(与只有 3 种颜色的向量相比)?
最后,有没有办法手动添加文字?我想注意左下角残差变化的比例。
这是包https://cran.r-project.org/web/packages/VennDiagram/VennDiagram.pdf的链接
非常感谢任何帮助。
【问题讨论】:
-
关于如何做到这一点的任何建议?:
print.mode = c("raw", "percent")似乎有效。 最后,有没有办法手动添加文字?:grid::grid.text("some label", x=0.1, y=0.1)。 此外,有没有办法控制每个分数的填充颜色,我认为并不容易,但stackoverflow.com/questions/43963293/… 显示了一种方法。 -
关于添加文本:您是否以正确的顺序运行代码?还提到here,您需要先运行
grid.arrange(gTree(children=g))或以任何方式打印绘图,然后运行'grid::grid.text("some label", x=0.1, y=0.1)'。如果我以这种方式运行您的代码,加上 grid.text 位,它会在图的左下角很好地显示“一些标签”。 -
正如你所建议的,我不得不颠倒顺序。感谢您提供代码并发现我的错误。
-
ps...您不需要
grid.arrange(gTree(children=g)),只需grid::grid.draw(g)即可。 (并使用grid::grid.newpage()绘制新情节),虽然我认为triple.venn 会自动绘制
标签: r plot annotations partitioning venn-diagram