我想生成一个连续变量(N)的箱线图,而不是按另一个因子(A有2个等级)分组的分类变量(BL)
所以,当我使用以下代码时:
data$BL <-factor (data$BL, labels =c("0", "1" , "2"))
data$A <- factor (data$A, labels = c("0", "1"))
plot1 <- ggplot(data=data, aes(x = BL , y = N, fill = A)) +
geom_boxplot()
plot1
我最终没有0合0的方框... 我从数据集中知道有0-0组合的个人..那么为什么没有显示框?
非常感谢任何建议和意见 感谢
答案 0 :(得分:0)
请注意,由于您没有提供任何示例数据,因此尝试调试数据的内容是一种猜谜游戏。最好始终提供包含样本数据的reproducible & minimal example。
在以下示例中,我生成了一些示例数据。
set.seed(2017);
N <- 60;
data <- data.frame(
N = sample(1:60, N),
BL = sample(rep(c("0", "1", "2"), each = N / 3)),
A = sample(rep(c("0", "1"), each = N / 2)));
显示不同N
群组的BL
分布:
library(ggplot2);
ggplot(data, aes(x = BL, y = N)) + geom_boxplot();
显示不同N
和BL
群组的A
分布:
ggplot(data, aes(x = BL, y = N, fill = A)) + geom_boxplot();
答案 1 :(得分:0)
似乎所有组合BL = 0和A = 0的人都有相同的N值。你能检查一下是不是这样吗?
因为否则,具有完全代码和数据的情节(其中N因组合0-0的个体而异)看起来很好:
以下是代码:
library(ggplot2)
data <- data.frame(BL = c(0,0,1,1,2,2),
A = c(0,1,0,1,0,1),
N = c(1:30))
data$BL <-factor (data$BL, labels =c("0", "1" , "2"))
data$A <- factor (data$A, labels = c("0", "1"))
ggplot(data=data, aes(x = BL , y = N, fill = A)) +
geom_boxplot()
答案 2 :(得分:0)
如果以下代码产生了所需的结果,请检查一下:
data$BL <- as.factor(data$BL)
data$A <- as.factor(data$A)
ggplot(data=data, aes(x = BL , y = N, fill = A)) +
geom_boxplot()
如果您提供级别的顺序与级别在数据中的显示顺序不同,那么将BL和A转换为因子的方式会使数据混乱。