使用cowplot

时间:2017-10-03 16:58:46

标签: r ggplot2 cowplot

我正在尝试将其他x轴标签添加到带有离散轴标签的ggplot2图中。我尝试了一些方法(包括一些使用grid的方法,即here),但已经决定使用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)

如何使用ggplot2中的add_sub()函数将其他x轴标签添加到cowplot图(带有离散轴标签)?

2 个答案:

答案 0 :(得分:1)

你得到这个结果是因为add_sub正在输入输入图并在其下方书写,因此每当你添加另一个add_sub时你都会低一级。

这就是我要解决的问题:

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)

enter image description here

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

答案 1 :(得分: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)

enter image description here