我试着把物种的存在表现在集装箱繁殖地.我用条形图和 colored颜色 代码来代表我的不同物种.我最初试图为我的sp变量的每个值指定一种 colored颜色 ,但它似乎 colored颜色 太多,因为我在一个繁育地点结合了多个物种.为了简化情节的视觉效果,我试图通过将一个物种的彩色图案添加到另一个物种的 colored颜色 之上来表示同一容器中两个物种的存在,但没有成功.

下面是我使用的代码.我试过了,但不明白scale_pattern_manual的用法

有什么建议吗?

x11(); ggppt<-Tabagg %>%
  filter(!(type_gîtes %in% "na")) %>%
  filter(pres_larve %in% "Oui") %>%
  filter(!(sp %in% "na")) %>%
  ggplot()      +
  aes(x = type_gîtes, fill = sp)  +
  geom_bar()                      +
  labs(x = "Type gîte", 
       y = "N", fill = "Espèces") +
  coord_flip()                    +
  theme_minimal()                 +
  theme(legend.text.align = 0,
        legend.position = "bottom")+
  scale_fill_manual(name = "Espèces" ,
                    values = c("Ae. aegypti"                                    = "#DA4943",
                               "Ae. aegypti + Ae. polynesiensis"                = "#D058EC",
                               "Ae. aegypti + Ae. polynesiensis + Cx. spp."     = "#FF27D5",
                               "Ae. aegypti + Cx. spp."                         = "#EC8158",
                               "Ae. aegypti + Toxo. amboinensis"                = "#CC804D",
                               "Ae. polynesiensis"                              = "#5284D9",
                               "Ae. polynesiensis + W. mitchellii"              = "#CB447C",
                               "Cx. spp."                                       = "#E5AD3F",
                               "Toxo. amboinensis"                              = "#67E5C8",
                               "W. mitchellii"                                  = "#A259DB",
                               "na"                                             = "#757575"
                    ),
                    labels = c(expression(italic("Ae. aegypti"),
                                          italic("Ae. aegypti + Ae. polynesiensis"), 
                                          italic("Ae. aegypti + Ae. polynesiensis + Cx. spp."),
                                          italic("Ae. aegypti + Cx. spp."), 
                                          italic("Ae. aegypti + Toxo. amboinensis"),
                                          italic("Ae. polynesiensis"), 
                                          italic("Ae. polynesiensis + W. mitchellii"),
                                          italic("Cx. spp."),
                                          italic("Toxo. amboinensis"),
                                          italic("W. mitchellii"),
                                          "na"))) +
  geom_bar_pattern()+
  scale_pattern_manual(values=c("Ae. aegypti + Ae. polynesiensis" ="Stripe")); ggppt

下面是生成的情节

enter image description here

推荐答案

您可能想try 一下这样的方法:

数据

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 

scale_fill_manual()scale_pattern_manual()起相同的名字.另外,指定要显示图案的组(或组).

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" = "#DA4943",
      "f" = "#D058EC",
      "r" = "#FF27D5"
    )
  ) +
  scale_pattern_manual(
    name = "Drive",
    values = c(
      "4" = "none",
      "f" = "stripe", 
      "r" = "none"
    )
  )

enter image description here

R相关问答推荐

多重RHS固定估计

如何使用按钮切换轨迹?

R Sapply函数产生的值似乎与for循环方法略有不同

如何在modelsummary中重命名统计数据?

当我们有多个特殊字符时,使用gsub删除名称和代码'

使用外部文件分配变量名及其值

无法定义沿边轨迹的 colored颜色 渐变(与值无关)

列名具有特殊字符时的循环回归

从多层嵌套列表构建Tibble?

根据约束随机填充向量的元素

如何在R中改变fviz_pca_biplot中圆的边界线的 colored颜色 ?

如何将EC50值绘制在R中的剂量-react 曲线上?

按镜像列值自定义行顺序

抽样变换-REXP与RWEIBUR

分隔日期格式为2020年7月1日

以R表示的NaN值的IS.NA状态

如何在一种 colored颜色 中设置数值变量的 colored颜色 和高于阈值的 colored颜色 点?

根据小时-分钟列创建年-月-日序列

如何系统地根据柱的位置对柱进行操作?

R-有没有办法比较列字符串之间的单个项目?