我想用虹膜数据框做一个盒子图.田间树种由刚毛、杂色、处女草3个等级组成.当我过滤掉setosa时,它会从图表中删除框图,但我希望setosa仍然在x轴上.我怎么能这样做呢?

library(tidyverse)
iris%>%
  filter(Species!="setosa")%>%
  ggplot(aes(x=Species, y=Sepal.Length,fill=Species)) + 
  geom_boxplot()

推荐答案

drop=FALSEx和/或fill相加,如果使用ggplot2&>=3.5.0,则将show.legend=TRUEgeom_boxplot相加(否则关键符号将不会显示在fill图例中):

library(tidyverse)

iris %>%
  filter(Species != "setosa") %>%
  ggplot(aes(x = Species, y = Sepal.Length, fill = Species)) +
  geom_boxplot(show.legend = TRUE) +
  scale_x_discrete(drop = FALSE) +
  scale_fill_discrete(drop = FALSE)

R相关问答推荐

如何判断某列中由某些行组成的百分比

使用spatVector裁剪网格数据时出现的问题

R中具有gggplot 2的Likert图,具有不同的排名水平和显示百分比

使用gggrassure减少地块之间的空间

使用gcuminc,如何使用逗号格式化风险表?

正则表达式在第二个管道和第二个T之后拆分R中的列

使用未知字符数(不受限制的最大长度)的Lookback有什么好的替代方案?

从数据创建数字的命名列表.R中的框

远离理论值的伽马密度曲线下面积的近似

无法将条件case_when()应用于使用!!创建的新变量Mutations

随机 Select 的非NA列的行均数

将文本批注减少到gglot的y轴上的单个值

数据集上的R循环和存储模型系数

ArrangeGrob()和类似的替代方法不接受Grob列表.在Grid.Draw,返回:glist中的错误(...):仅允许在glist";中使用Grobs;

将数据从一列转换为按组累计计数的单个虚拟变量

在shiny 表格中输入的文本在第一次后未更新

将仪表板中的值框大小更改为Quarto

从两个数据帧中,有没有办法计算R中一列的唯一值?

根据用户输入更改标记大小和 colored颜色 (R)

R:水平旋转图