我有一个带有离散x轴的图,我想调整比例尺两侧的多余空间,使其在左侧变小,在右侧变大,因此长标签将适合。scale_x_discrete(expand=c(0, 1))在这里不是我的朋友,因为它总是同时在两侧工作。这个问题是相似的,但是解决了连续的规模问题。
我该如何实现?
set.seed(0)
L <- sapply(LETTERS, function(x) paste0(rep(x, 10), collapse=""))
x <- data.frame(label=L[1:24],
g2 = c("a", "b"),
y = rnorm(24))
x$g2 <- as.factor(x$g2)
x$xpos2 <- as.numeric(x$g2) + .25
# two groups
ggplot(x, aes(x=g2, y=y)) +
geom_boxplot(width=.4) +
geom_point(col="blue") +
geom_text(aes(x=xpos2, label=label, hjust=0))
Run Code Online (Sandbox Code Playgroud)
这可能是您要寻找的:
library(ggplot2)
set.seed(0)
L <- sapply(LETTERS, function(x) paste0(rep(x, 10), collapse=""))
x <- data.frame(label=L[1:24],
g2 = c("a", "b"),
y = rnorm(24))
x$g2 <- factor(x$g2, levels=c("a", "b", "c"))
x$xpos2 <- as.numeric(x$g2) + .25
# two groups
ggplot(x, aes(x=g2, y=y)) +
geom_boxplot(width=.4) +
geom_point(col="blue") +
geom_text(aes(x=xpos2, label=label, hjust=0)) +
scale_x_discrete(expand=c(0.1,0),
breaks=c("a", "b"),
labels=c("a", "b"),
limits=c("a", "b", "c"), drop=FALSE)
Run Code Online (Sandbox Code Playgroud)