1

我正在尝试将额外的 x 轴标签添加到具有离散轴标签的 ggplot2 图中。我尝试了一些方法(包括一些使用grid,即这里),但已决定使用包中的add_sub()函数cowplot。但是,添加多个附加标签似乎并不简单,因为后续标签会添加到已经用一个附加标签修改的图下方,而它应该与它垂直对齐)。这是一个示例,其中“我的标签”在正确的位置,但“我的第二个标签”不是。我已经尝试手动调整第二个标签的垂直/y轴位置,但是随后的标签出现了同样的问题(实际上以一种更棘手的形式,因为适用于第二个标签的相同调整在任何情况下都不起作用第三种方法的直接方法)。这是一个例子:

library(ggplot2)
library(cowplot)
#> 
#> Attaching package: 'cowplot'
#> The following object is masked from 'package:ggplot2':
#> 
#>     ggsave

p <- ggplot(diamonds, aes(x = carat, y = price, color = cut)) +
    geom_point()

p1 <- add_sub(p, label = "My Label", x = .125)
p2 <- add_sub(p1, label = "My Second Label", x = .275)

ggdraw(p2)

如何使用from 函数向ggplot2绘图(带有离散轴标签)添加额外的 x 轴标签?add_sub()cowplot

4

2 回答 2

1

您会得到这个结果,因为add_sub正在获取输入图并在其下方写入,因此每次添加另一个图时,add_sub您将降低 1 级。

这就是我要解决的问题:

p <- ggplot(diamonds, aes(x = carat, y = price, color = cut)) +
  geom_point()

p1 <- add_sub(p, label = c("My Label   My Second Label"))

ggdraw(p1)

在此处输入图像描述

当然,您可以根据需要添加更多空格或进行其他调整。

于 2017-10-03T17:18:03.500 回答
1

您需要添加hjust=0左对齐标签...

p <- ggplot(diamonds, aes(x = carat, y = price, color = cut)) +
  geom_point() 

p1 <- add_sub(p, label = "My Label", x = .125, hjust=0)
p2 <- add_sub(p1, label = "My Second Label", x = .125, hjust=0)

ggdraw(p2)

在此处输入图像描述

于 2017-10-03T17:24:33.837 回答