我想使用 ggplot2 并排制作四个箱线图,但我很难找到适合我目的的解释。
我正在使用著名的Iris数据集,我只是想制作一个图表,其中包含 sepal.length、sepal.width、petal.length 和petal.width 的值的箱线图,它们都彼此相邻。这些都是数值。
我觉得这应该非常简单,但我正在努力解决这个问题。
任何帮助,将不胜感激。
我想使用 ggplot2 并排制作四个箱线图,但我很难找到适合我目的的解释。
我正在使用著名的Iris数据集,我只是想制作一个图表,其中包含 sepal.length、sepal.width、petal.length 和petal.width 的值的箱线图,它们都彼此相邻。这些都是数值。
我觉得这应该非常简单,但我正在努力解决这个问题。
任何帮助,将不胜感激。
尝试这个。该方法是选择数值变量并将tidyverse
函数重塑为 long 以绘制所需的图。您可以使用facet_wrap()
以创建矩阵样式图或避免它只有一个图。这里的代码(两个选项):
library(tidyverse)
#Data
data("iris")
#Code
iris %>% select(-Species) %>%
pivot_longer(everything()) %>%
ggplot(aes(x=name,y=value,fill=name))+
geom_boxplot()+
facet_wrap(.~name,scale='free')
输出:
或者,如果您想要一个图中的所有数据,您可以避免使用facet_wrap()
并使用:
#Code 2
iris %>% select(-Species) %>%
pivot_longer(everything()) %>%
ggplot(aes(x=name,y=value,fill=name))+
geom_boxplot()
输出:
在base R
中,它可以更容易地在单行中完成
boxplot(iris[-5])
或使用ggboxplot
fromggpubr
library(ggpubr)
library(dplyr)
library(tidyr)
iris %>%
select(-Species) %>%
pivot_longer(everything()) %>%
ggboxplot(x = 'name', fill = "name", y = 'value',
palette = c("#00AFBB", "#E7B800", "#FC4E07", "#00FABA"))