gpt4 book ai didi

r - ggplot中是否有与plot中的varwidth选项等效的东西?

转载 作者:行者123 更新时间:2023-12-04 03:59:16 25 4
gpt4 key购买 nike

我正在使用ggplot创建boxplots,并想代表每个盒子的样本大小。在基本plot函数中,有varwidth选项。它在ggplot中有一个等效项吗?

例如,在基准图中

data <- data.frame(rbind(cbind(rnorm(700, 0,10), rep("1",700)),
cbind(rnorm(50, 0,10), rep("2",50))))
data[ ,1] <- as.numeric(as.character(data[,1]))
plot(data[,1] ~ as.factor(data[,2]), varwidth = TRUE)

最佳答案

不优雅,但您可以通过以下方法做到这一点:

data <- data.frame(rbind(cbind(rnorm(700, 0,10), rep("1",700)),
                         cbind(rnorm(50, 0,10), rep("2",50))))
data[ ,1] <- as.numeric(as.character(data[,1]))
w <- sqrt(table(data$X2)/nrow(data))
ggplot(NULL, aes(factor(X2), X1)) +
geom_boxplot(width = w[1], data = subset(data, X2 == 1)) +
geom_boxplot(width = w[2], data = subset(data, X2 == 2))

如果 X2有多个级别,则可以不对所有级别进行硬编码:
ggplot(NULL, aes(factor(X2), X1)) + 
llply(unique(data$X2), function(i) geom_boxplot(width = w[i], data = subset(data, X2 == i)))

您也可以发布功能请求:
https://github.com/hadley/ggplot2/issues

关于r - ggplot中是否有与plot中的varwidth选项等效的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12647774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com