我用
log10()
变换的 x 轴绘制了一个图,我想为其添加标签。假设我正在制作散点图,并且出于某种原因我想标记这些点。我不希望点和字母重叠,因此我将标签稍微向右移动。 R代码:
n <- 5
df <- data.frame(x= seq(.1, 3, length.out= n), y= 1:n, lab= letters[1:n])
library(ggplot2)
ggplot(df) +
geom_point(aes(x, y, col= lab), show.legend= FALSE) +
geom_text(aes(x + 1, y, label= lab, col= lab), show.legend= FALSE) +
scale_x_continuous(transform= "log10")
由于变换,第一个点 (.1,1) 与其标签 (“a”) 之间的偏移似乎比另一个点大得多。如何添加与其点具有相同视觉偏移的标签?我尝试了各种方法,但点和标签之间的视觉间隙总是变化。
一种选择是在应用
stage()
进行转换后,使用 scale
将位置移动等量:
library(ggplot2)
ggplot(df) +
geom_point(aes(x, y, col = lab), show.legend = FALSE) +
geom_text(
aes(
stage(x, after_scale = x + .1),
y,
label = lab, col = lab
),
show.legend = FALSE
) +
scale_x_continuous(transform = "log10")