问题描述
我有这个数据框 DF
:
|total | n |
|------|----|
| 0 | 19 |
| 1 | 16 |
| 2 | 23 |
| 3 | 31 |
| 4 | 20 |
| 5 | 95 |
... 或者,使其可重现:
> dput(DF)
structure(list(total = c(0,1,2,3,4,5),n = c(19L,16L,23L,31L,20L,95L)),row.names = c(NA,6L),class = "data.frame")
现在如果我用它制作一张华夫饼图:
library(waffle)
waffle(DF$n,rows=6,size=0.6,colors=c("#EAECEC","#DFE0E2","#B3B6BC","#888D96","#4E5656","#0A0B0B"),#title="Legal Databases",xlab="1 square == 1 country")
...我得到一个由“A”、“B”、“C”等组成的图例文本:
如何更改图例文本?我希望它读取“分数:0”、“分数:1”等,直到“分数:5”而不是“A”、“B”、“C”等
我尝试使用 this post 中的 names()
-解决方案,但没有奏效。
解决方法
根据waffle
如果向量未命名或仅部分命名,则将使用大写字母代替。
因此,我们可以创建一个命名向量并通过
library(waffle)
v1 <- setNames(DF$n,paste0("Score: ",seq_along(DF$n)-1))
waffle(v1,rows=6,size=0.6,colors=c("#EAECEC","#DFE0E2","#B3B6BC","#888D96","#4E5656","#0A0B0B"),#title="Legal Databases",xlab="1 square == 1 country")
-输出
,与 akrun 类似的解决方案!在文档 https://cran.r-project.org/web/packages/waffle/waffle.pdf 中有参数 parts
= 用于图表的命名值向量:
library(waffle)
parts=c(DF$n)
names(parts) = paste0("Score: ",DF$total)
waffle(parts,xlab="1 square == 1 country")