首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在R中的华夫饼图的图例部分添加文本?

如何在R中的华夫饼图的图例部分添加文本?
EN

Stack Overflow用户
提问于 2019-12-02 18:21:13
回答 1查看 1.1K关注 0票数 0

我想创造一个华夫饼的情节。我的数据和华夫图都是这样的-

代码语言:javascript
运行
复制
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)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-02 21:27:52

基于waffle包的文档,我不确定您是否能够为waffle图设置很多参数。

但是,可以在修改数据的类别名称之前执行以下操作:

代码语言:javascript
运行
复制
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_tileggplot2进行“华夫饼”绘图。这个过程不那么简单,但至少您可以享受到ggplot2的全部定制工具。要获得相同的图,可以这样做:

代码语言:javascript
运行
复制
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)"))

你会得到以下图表:

希望它能回答你的问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59144650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档