我想创造一个华夫饼的情节。我的数据和华夫图都是这样的-
library(waffle)
parts=c("Extraction"=397, "Operculectomy"=11, "Medication"=3)
waffle(parts, row=12, colors=c("#CC0000", "#006600", "#669999"))

我想在这个情节的图例部分的标签上添加一些文本如下:
提取(397/413)
手术切除(11/413)
药物治疗(3/413)
发布于 2019-12-02 21:27:52
基于waffle包的文档,我不确定您是否能够为waffle图设置很多参数。
但是,可以在修改数据的类别名称之前执行以下操作:
library(waffle)
parts=c("Extraction"=397, "Operculectomy"=11, "Medication"=3)
names(parts) = paste0(names(parts),"(",parts,"/",sum(parts),")")
waffle(parts, row=12, colors=c("#CC0000", "#006600", "#669999"))它给出了以下图表:

使用 ggplot2的替代方案
或者,您可以使用来自geom_tile的ggplot2进行“华夫饼”绘图。这个过程不那么简单,但至少您可以享受到ggplot2的全部定制工具。要获得相同的图,可以这样做:
library(ggplot2)
categ_table = c("Extraction"=397, "Operculectomy"=11, "Medication"=3)
df <- expand.grid(y = 1:10, x = 1:(round(sum(categ_table)/10)+1))
df$Category = factor(c(rep(names(categ_table),categ_table),rep(NA,nrow(df)-sum(categ_table))))
df = df[!is.na(df$Category),]
ggplot(df, aes(x = x, y = y, fill = Category)) +
geom_tile(color = "white", size = 0.5) +
scale_x_continuous(expand = c(0, 0)) +
scale_y_continuous(expand = c(0, 0))+
theme(legend.title = element_blank(),
panel.background = element_rect(fill = 'white', colour = 'white'),
axis.text = element_blank(),
axis.title = element_blank(),
axis.ticks = element_blank())+
scale_fill_manual(values = c("#CC0000", "#006600", "#669999"),
breaks = names(categ_table),
labels = c("Extraction (397/411)","Operculectomy (11/411)", "Medication (3/411)"))你会得到以下图表:

希望它能回答你的问题
https://stackoverflow.com/questions/59144650
复制相似问题