当使用 cowplot 中的 plot_grid 排列绘图时,较长的绘图标签会向右移动
Longer plot labels move to the right when arranging plots with plot_grid from cowplot
我被问到 this question on Twitter 并且认为把它放在这里可能会很好。
在使用 plot_grid()
制作带标签的并排绘图时,对于单字母标签,一切正常:
library(cowplot)
p1 <- ggplot(iris, aes(x = Sepal.Length, fill = Species)) +
geom_density(alpha = 0.7) +
ggtitle("") + theme_minimal()
p2 <- ggplot(iris, aes(x = Sepal.Length, fill = Species)) +
geom_density(alpha = 0.7) +
ggtitle("") +
scale_fill_grey() + theme_minimal()
plot_grid(p1, p2, labels = c("A", "B"))
但是,如果我们使用较长的字符串作为标签,标签会向右移动,并且字符串越长,它们移动得越多:
plot_grid(p1, p2, labels = c("Density plot in color", "In gray"))
如何解决这个问题?
免责声明:我是包的作者。将其与答案一起张贴在这里,希望它有用。
plot_grid()
中参数 hjust
和 label_x
的默认设置针对单字母标签进行了优化,它们不适用于较长的标签。覆盖设置可解决问题:
plot_grid(p1, p2, labels = c("Density plot in color", "In gray"),
hjust = 0, label_x = 0.01)
特别是,默认 hjust
设置为 hjust = -0.5
。这会将标签向右移动相当于其宽度一半的量。这对于单个字母标签是有意义的,因为这样我们就可以通过设置 label_x = 0
让字母出现在距离左边框半个字母宽度的地方,并且无论标签字体大小或用户可能使用的任何其他绘图功能,这都将起作用已选择。
但是,将标签移动其宽度的一半对于较长的标签没有任何意义,尤其是不同长度的标签。
我被问到 this question on Twitter 并且认为把它放在这里可能会很好。
在使用 plot_grid()
制作带标签的并排绘图时,对于单字母标签,一切正常:
library(cowplot)
p1 <- ggplot(iris, aes(x = Sepal.Length, fill = Species)) +
geom_density(alpha = 0.7) +
ggtitle("") + theme_minimal()
p2 <- ggplot(iris, aes(x = Sepal.Length, fill = Species)) +
geom_density(alpha = 0.7) +
ggtitle("") +
scale_fill_grey() + theme_minimal()
plot_grid(p1, p2, labels = c("A", "B"))
但是,如果我们使用较长的字符串作为标签,标签会向右移动,并且字符串越长,它们移动得越多:
plot_grid(p1, p2, labels = c("Density plot in color", "In gray"))
如何解决这个问题?
免责声明:我是包的作者。将其与答案一起张贴在这里,希望它有用。
plot_grid()
中参数 hjust
和 label_x
的默认设置针对单字母标签进行了优化,它们不适用于较长的标签。覆盖设置可解决问题:
plot_grid(p1, p2, labels = c("Density plot in color", "In gray"),
hjust = 0, label_x = 0.01)
特别是,默认 hjust
设置为 hjust = -0.5
。这会将标签向右移动相当于其宽度一半的量。这对于单个字母标签是有意义的,因为这样我们就可以通过设置 label_x = 0
让字母出现在距离左边框半个字母宽度的地方,并且无论标签字体大小或用户可能使用的任何其他绘图功能,这都将起作用已选择。
但是,将标签移动其宽度的一半对于较长的标签没有任何意义,尤其是不同长度的标签。