2017-03-29 5 views

Antwort

2

Es ist nicht wie diese Funktion sieht wurde entwickelt, das zu tun. Wenn Sie diese Funktion wirklich verwenden möchten, können Sie sie "hacken", um den Standardformatierungscode zu ersetzen, der für Beschriftungen verwendet wird. Beachten Sie, dass diese Methode sehr fragil ist, da wir bestimmte Codezeilen bearbeiten. machen Sie zuerst eine Kopie der Funktion

myvenn <- VennDiagram::draw.pairwise.venn 

Hier ist die Standard-Formatierungs

body(myvenn)[[46]] 
# wrapLab <- function(num) { 
#  stri = "" 
#  if (print.mode[1] == "percent") { 
#   stri <- paste(signif(num * 100/denom, digits = sigdigs), 
#    "%", sep = "") 
#   if (isTRUE(print.mode[2] == "raw")) { 
#    stri <- paste(stri, "\n(", num, ")", sep = "") 
#   } 
#  } 
#  if (print.mode[1] == "raw") { 
#   stri <- num 
#   if (isTRUE(print.mode[2] == "percent")) { 
#    stri <- paste(stri, "\n(", paste(signif(num * 100/denom, 
#     digits = sigdigs), "%)", sep = ""), sep = "") 
#   } 
#  } 
#  return(stri) 
# } 

Lasst uns das ersetzen mit einem Aufruf an prettyNum die Kommas hinzufügen

body(myvenn)[[46]][[3]] <- quote(function(x) { 
    prettyNum(x ,big.mark=",",scientific=FALSE) 
}) 

Jetzt können wir unsere Version nennen der Funktion

venn.plot <- myvenn(10000, 7000, 3000, c("First", "Second"), scaled = FALSE) 
grid::grid.draw(venn.plot) 

enter image description here

1

Sie können die Elemente auch manuell bearbeiten.

venn.plot[[5]][["label"]] <- "7,000" 
venn.plot[[6]][["label"]] <- "4,000" 
venn.plot[[7]][["label"]] <- "3,000" 

grid::grid.draw(venn.plot) 

enter image description here

0

Hier ist eine andere Art und Weise mit einer Schlaufe

venn.plot <- VennDiagram::draw.pairwise.venn(10000, 7000, 3000, c("First", "Second"), scaled = FALSE) 

for(i in 1:length(venn.plot)){ 

if(!is.null(venn.plot[[i]][["label"]]) && 
    !is.na(as.numeric(venn.plot[[i]][["label"]])) 
) { 

    venn.plot[[i]][["label"]] <- prettyNum(venn.plot[[i]][["label"]], big.mark = ",") 

} 
} 

Warning messages: 
1: NAs introduced by coercion 
2: NAs introduced by coercion 
grid::grid.draw(venn.plot) 
Verwandte Themen