r - 如何在 R 中华夫饼图的图例部分添加文本?
问题描述
我正在尝试创建一个华夫饼图。我的数据和华夫饼图看起来像这样-
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)
解决方案
根据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
from 来绘制“华夫饼”图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)"))
希望它能回答你的问题
推荐阅读
- android - 如何使用动画按比例缩放 ViewHolder 的宽度?
- javascript - 获取查询参数
- python - 将 MultiPolygons 和 Polygons 列表转换为单个 MultiPolygon
- codeigniter - 如何在共享主机上部署 vue-codeigniter 分离的逻辑应用程序?
- django - ListView 类中的当前用户变量
- python - 如何在python中制作网格?
- sql - Oracle - 具有连接条件的外部连接
- javascript - 使用javascript从日期到日期验证
- r - 如何在 R 中创建分类区域地图
- php - Laravel MYSQL 如果 DB::commit 未添加跳过 id 并且添加时需要后续一个