gpt4 book ai didi

r - 将共享图例与绘图网格的中心对齐(使用牛图)

转载 作者:行者123 更新时间:2023-12-04 17:31:07 25 4
gpt4 key购买 nike

可以在本教程中为包 cowplot 找到可重现的示例。

https://cran.r-project.org/web/packages/cowplot/vignettes/shared_legends.html

复制示例代码:

library(ggplot2)
library(cowplot)
#down-sampled diamonds data set
dsamp <- diamonds[sample(nrow(diamonds), 1000), ]

# Make three plots.
# We set left and right margins to 0 to remove unnecessary spacing in the
# final plot arrangement.
p1 <- qplot(carat, price, data=dsamp, colour=clarity) +
theme(plot.margin = unit(c(6,0,6,0), "pt"))
p2 <- qplot(depth, price, data=dsamp, colour=clarity) +
theme(plot.margin = unit(c(6,0,6,0), "pt")) + ylab("")
p3 <- qplot(color, price, data=dsamp, colour=clarity) +
theme(plot.margin = unit(c(6,0,6,0), "pt")) + ylab("")

# arrange the three plots in a single row
prow <- plot_grid( p1 + theme(legend.position="none"),
p2 + theme(legend.position="none"),
p3 + theme(legend.position="none"),
align = 'vh',
labels = c("A", "B", "C"),
hjust = -1,
nrow = 1
)
legend_b <- get_legend(p1 + theme(legend.position="bottom"))

# add the legend underneath the row we made earlier. Give it 10% of the height
# of one plot (via rel_heights).
p <- plot_grid( prow, legend_b, ncol = 1, rel_heights = c(1, .2))
p

此示例显示了一个图,其中图例与网格的左下角对齐。
但是,它曾经有所不同,因为然后将图例绘制为与图的底部中心对齐。这是几个月前由我的个人代码生成的示例。
https://s1.postimg.org/8pf2en1zen/Untitled.png (上传工具目前对我不起作用)

在任一包中发生未知数量的更改后重新运行我的旧代码会提供一个与左下角对齐的图例(如教程中所示,上面的第三个图):
https://s1.postimg.org/3agjw7n9gf/Untitled2.png

问题是如何调整代码以绘制与底部中心对齐的图例。

最佳答案

你可以这样设置legend_b:

legend_b <- get_legend(p1 + theme(legend.position=c(0.3,0.8),legend.direction = "horizontal"))

更好的方法:
legend_b <- get_legend(p1 + theme(legend.direction = "horizontal",legend.justification="center" ,legend.box.just = "bottom"))

关于r - 将共享图例与绘图网格的中心对齐(使用牛图),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46645117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com