在箱线图中绘制两个变量 ggplot2

问题描述 投票:0回答:1

我知道其他人问过这个问题,我已经阅读并尝试了人们提供的答案,但我仍然没有运气。我的 R 素养还不够高,也许我组织数据的方式有问题?

我有两个群体,a 和 b,我想在同一个箱线图上比较叶子长度和叶子宽度。我可以单独制作 qplot,但不能一起制作 qplot。

data <- read.csv("Leaf.csv", header=TRUE)

data$AORB <- as.factor(data$AORB)

library(ggplot2); library(plyr)

qplot(mapping=aes(x=AORB,y=Leaf_length),data=data,
      main="Box Plot using qplot()",geom="boxplot",
      xlab="Country",ylab="Leaf Length")

这是我的数据。

structure(list(AORB = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L), levels = c("a", "b"), class = "factor"), Leaf_length = c(290L,290L, 350L, 300L, 250L, 510L, 450L, 430L, 550L, 1000L), Leaf_width = c(200L,200L, 280L, 240L, 200L, 190L, 230L, 240L, 250L, 531L)), row.names = c(NA,-10L), class = "data.frame")

任何人都可以帮助我获取代码吗?如果我没有清楚地提供我的数据,请告诉我。

谢谢!

r ggplot2 boxplot
1个回答
0
投票

实现所需结果的最简单选择是在绘图之前很久就将数据重新整形。另请注意,

qplot
ggplot2 3.4.0
中已弃用:

library(ggplot2)
library(tidyr)

dat_long <- data |>
  tidyr::pivot_longer(c(Leaf_length, Leaf_width),
    names_to = "stat", values_to = "value"
  )

ggplot(dat_long, aes(AORB, value, fill = stat)) +
  geom_boxplot() +
  labs(
    x = "Country"
  )

© www.soinside.com 2019 - 2024. All rights reserved.