首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有Waffle图表的r ggplot图例

有Waffle图表的r ggplot图例
EN

Stack Overflow用户
提问于 2022-10-20 09:59:55
回答 1查看 47关注 0票数 1
代码语言:javascript
运行
复制
library(tidyverse)
library(waffle)
df_2 <- structure(list(group = c(2, 2, 2, 1, 1, 1), 
  parts = c("A", "B", "C", "A", "B", "C"), 
  values = c(1, 39, 60, 14, 15, 71)), row.names = c(NA,
  -6L), class = c("tbl_df", "tbl", "data.frame"))

df_2 %>% ggplot(aes(label = parts)) +
  geom_pictogram(
    n_rows = 10, aes(color = parts, values = values),
    family = "fontawesome-webfont",
    flip = TRUE
  ) +
  scale_label_pictogram(
    name = "Case",
    values = c("male"),
    breaks = c("A", "B", "C"),
    labels = c("A", "B", "C")
  ) +
  scale_color_manual(
    name = "Case",
    values = c("A" = "red", "B" = "green", "C" = "grey85"),
    breaks = c("A", "B", "C"),
    labels = c("A", "B", "C")
  ) +
  facet_grid(~group)

通过上面的代码,我得到了我所期望的传奇:

但是,当我用下面的df_2数据unable替换df_1时,我无法将两个传说结合起来。

代码语言:javascript
运行
复制
df_1 <- structure(list(group = c(2, 2, 2, 1, 1, 1), 
  parts = c("A", "B", "C", "A", "B", "C"), 
  values = c(0, 0, 100, 0, 0, 100)), 
  row.names = c(NA,-6L), class = c("tbl_df", "tbl", "data.frame"))

我知道问题的原因(0值),但是我想保持图例和上面的图相同。如有任何建议,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-20 10:15:15

为了说明这一点,此处提到的“华夫饼”包不是“华夫饼”,而是GitHub专用的包:

代码语言:javascript
运行
复制
remotes::install_github("hrbrmstr/waffle")
library(waffle)

您还需要一种显示象形图的方法,例如:

代码语言:javascript
运行
复制
library(emojifont)
load.fontawesome()

现在,与任何其他离散刻度一样,如果要添加(Post)数据中不存在的值,则需要使用limits参数:

代码语言:javascript
运行
复制
df_1 %>% ggplot(aes(label = parts)) +
  geom_pictogram(
    n_rows = 10, aes(color = parts, values = values),
    family = "fontawesome-webfont",
    flip = TRUE
  ) +
  scale_label_pictogram(
    name = "Case",
    values = c("male"),
    breaks = c("A", "B", "C"),
    labels = c("A", "B", "C"),
    limits = c("A", "B", "C")
  ) +
  scale_color_manual(
    name = "Case",
    values = c("A" = "red", "B" = "green", "C" = "grey85"),
    breaks = c("A", "B", "C"),
    labels = c("A", "B", "C")
  ) +
  facet_grid(~group)

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

https://stackoverflow.com/questions/74137988

复制
相关文章

相似问题

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