在变换后的比例上按相同的视觉比例移动几何

问题描述 投票:0回答:1

我用

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")

Plot

由于变换,第一个点 (.1,1) 与其标签 (“a”) 之间的偏移似乎比另一个点大得多。如何添加与其点具有相同视觉偏移的标签?我尝试了各种方法,但点和标签之间的视觉间隙总是变化。

r ggplot2 transform
1个回答
0
投票

一种选择是在应用

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")

© www.soinside.com 2019 - 2024. All rights reserved.