增大半径并缩小标签。
pie(<your other arguments>, radius = 1, cex = 0.3)
但正如卡尔所说,不要使用饼图 http://www.perceptualedge.com/articles/visual_business_intelligence/save_the_pies_for_dessert.pdf.
以下是用于可视化此数据集的饼图和条形图的比较。对我来说,条形图使比较更容易。
library(dplyr)
library(forcats)
library(ggplot2)
dataset <- tribble(
~ VariantClass, ~ PASS_ONTARGET,
"Silent", 50.30,
"Missense", 47.00,
"Nonsense", 0.74,
"Startloss", 0.26,
"Stoploss", 0.74,
"Frameshift-indel", 0.61,
"Inframe-indel", 0.35
) %>%
mutate(VariantClass = fct_reorder(VariantClass, PASS_ONTARGET))
ggplot(dataset, aes(x = "", y = PASS_ONTARGET, fill = VariantClass)) +
geom_col(width = 1) +
coord_polar(theta = "y") +
xlab(NULL)
ggplot(dataset, aes(VariantClass, PASS_ONTARGET)) +
geom_col() +
coord_flip()
为了完整起见,以下是帕累托图和瀑布图的替代方案。您需要在绘图之前计算累积 y 值。
dataset2 <- dataset %>%
arrange(desc(VariantClass)) %>%
mutate(
cum_PASS_ONTARGET = cumsum(PASS_ONTARGET)
)
帕累托图是条形图+累积总线。它比条形图提供更多信息,如果您想回答“我需要包含多少个最大类别才能达到总数的 90%?”之类的问题,条形图会很有用。 (这对于 PCA 很重要,因为帕累托图在 PCA 中很常见。)不过,与标准条形图相比,它挤压了条形图。
ggplot(dataset2) +
geom_col(aes(VariantClass, PASS_ONTARGET)) +
geom_line(aes(as.integer(VariantClass), cum_PASS_ONTARGET)) +
coord_flip()
瀑布图移动条形以给出累积总数。这些有点小众,因为它们只适合查看累积总数:现在无法比较各个条形。对于这种用途,帕累托图比瀑布图更好。
ggplot(dataset2) +
geom_rect(
aes(
x = VariantClass,
xmin = as.integer(VariantClass) - 0.45,
xmax = as.integer(VariantClass) + 0.45,
ymin = cum_PASS_ONTARGET - PASS_ONTARGET,
ymax = cum_PASS_ONTARGET
)
) +
coord_flip()
#> Warning: Ignoring unknown aesthetics: x