如何在不切断的情况下使 R 中的 pie() 图表变大?

How to make a pie() chart larger in R without it cutting off?

我目前正在尝试使用 base R 中的 pie() 函数制作饼图。我怎样才能让它变大?我试过 radius = 1.2,但这最终会在顶部和底部切断图表(见附图)。我怎样才能让它更大而不被切断?这是我的代码:

explicitProp <- c(as.numeric(summary(ts$explicit)[[2]]), 
                  as.numeric(summary(ts$explicit)[[3]]))

pie(explicitProp, 
    labels = c("93.95%", "6.04%"),
    col = c("#bc5090", "#003f5c"),
    main = "Explicit vs. Clean Songs in Taylor Swift's Discography",
    radius = 1
    )
legend("topright", c("Clean", "Explicit"), fill = c("#bc5090", "#003f5c"))

此外,我知道饼图通常不受欢迎。然而,当比较两个结果时,它似乎是条形图更好的替代品。我是否错过了另一种可能更好地实现我的目标的可视化形式? Pie Chart Cut Off w/Radius > 1

基本图形中的pie()函数是一个简单的骨架图。手册页实际上建议您不要使用它:“饼图是一种非常糟糕的信息显示方式。”饼图的标准半径基于图中可用的 space。如果您的绘图 window 比垂直宽度宽,则半径将调整为垂直 space 减去默认边距。默认边距是底部、左侧、顶部、右侧的 c(5.1, 4.1, 4.1, 2.1) 行,以允许 space 用于标题和轴标签。这里有一些例子可以使事情更清楚。

par(mfrow=c(2, 2))   # Divide plot into 4 quarters
pie(c(7, 83, 33, 37, 14))  # Upper left, default plot, radius=0.8
pie(c(7, 83, 33, 37, 14), radius=1.05)  # Upper right, slightly larger
par(mar=c(0, 0, 0, 0))     # Remove default margins
pie(c(7, 83, 33, 37, 14))  # Same plot as upper left, but no margins
pie(c(7, 83, 33, 37, 14), radius=1.05)  # Same plot as upper right without margins

请注意,在右下方的 pid 图表中,一些标签被截断了。