作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用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)))
关于r - ggplot中是否有与plot中的varwidth选项等效的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12647774/
df = data.frame(a = c(0, 0), b = c(17, 15), c = c(35,37), d = c(55,57),
我是一名优秀的程序员,十分优秀!