首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移除图例,自定义图案颜色

移除图例,自定义图案颜色
EN

Stack Overflow用户
提问于 2022-10-26 20:39:16
回答 1查看 31关注 0票数 0

下面是一个数据框架作为例子。

代码语言:javascript
复制
library(tidyverse)
library(ggpattern)

dat <- data.frame(drv = c("4", "4", "4", "4", "4", "f", "f", "f", "f", "r", "r", "r"), 
                  class = c("compact", "midsize", "pickup", "subcompact", "suv", 
                            "compact", "midsize", "minivan", "subcompact", 
                            "2seater", "subcompact", "suv"), 
                  y = c(12L, 3L, 33L, 4L, 51L, 35L, 38L, 11L, 22L, 5L, 9L, 11L)) 

dat

x11();dat %>% ggplot(aes(x = class, y = y ,fill = drv, pattern = drv)) +
  #  geom_col()+   # not necessary
  geom_col_pattern() +
  coord_flip()       +
  theme_minimal()    +
  scale_fill_manual(
    name = "Drive",
    values = c("4" = "#EEF12B",
               "f" = "#D058EC",
               "r" = "#FF27D5"),
    labels = c(expression(italic("4"),
                          italic("f"),
                          italic("f")))
  ) +
  scale_pattern_manual(name = "Drive",
                       values = c("4" = "none",
                                  "f" = "stripe",
                                  "r" = "none")
  )+
  scale_pattern_fill_manual(
    values = c("f"  = "#5284D9")
  )

我得到的情节如下:

我想合并我的两个传说,以使背景颜色,但只有f类条纹。通过我的代码,我也想定制条纹的颜色,但没有成功。

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2022-10-26 21:05:43

要合并传奇,您必须对scale_pattern_manual使用与scale_fill_manual相同的标签。

代码语言:javascript
复制
library(ggplot2)
library(ggpattern)

ggplot(dat, aes(x = class, y = y, fill = drv, pattern = drv)) +
  geom_col_pattern() +
  coord_flip() +
  theme_minimal() +
  scale_fill_manual(
    name = "Drive",
    values = c(
      "4" = "#EEF12B",
      "f" = "#D058EC",
      "r" = "#FF27D5"
    ),
    labels = c(expression(
      italic("4"),
      italic("f"),
      italic("f")
    ))
  ) +
  scale_pattern_manual(
    name = "Drive",
    values = c(
      "4" = "none",
      "f" = "stripe",
      "r" = "none"
    ),
    labels = c(expression(
      italic("4"),
      italic("f"),
      italic("f")
    ))
  ) +
  scale_pattern_fill_manual(
    values = c("f" = "#5284D9")
  )

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

https://stackoverflow.com/questions/74213979

复制
相关文章

相似问题

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