Is there an equivalent in ggplot to the varwidth option in plot?
ggplot2, plot, r
Solution
Not elegant but you can do that by:
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))
If you have several levels for `X2`, then you can do without hardcoding all levels:
ggplot(NULL, aes(factor(X2), X1)) +
llply(unique(data$X2), function(i) geom_boxplot(width = w[i], data = subset(data, X2 == i)))
Also you can post a feature request: https://github.com/hadley/ggplot2/issues
Problem
I am creating boxplots using ggplot and would like to represent the sample size contributing to each box. In the base `plot` function there is the `varwidth` option. Does it have an equivalent in ggplot? For example, in base plot ``` 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) ```