gpt4 book ai didi

r - 如何防止ggplot剪切超出范围的点

转载 作者:行者123 更新时间:2023-12-04 16:44:46 29 4
gpt4 key购买 nike

我正在使用以下代码尝试保留超出绘图区域范围的几何元素,但它似乎仍然将它们剪裁到绘图区域上方一定距离之外。

g <- ggplot(iris, aes(x = Species, y = Petal.Length)) +
stat_summary(geom = 'bar', fun.y = mean) +
geom_point() +
scale_y_continuous(limits = c(0,8), expand = c(0,0), oob = function(x, ...) x) +
geom_text(label = 'obText', aes(x = 2, y = 9)) #+
# theme(plot.margin = unit(c(60,5.5,5.5,5.5), "points"),
# aspect.ratio = 1)

gb <- suppressWarnings(ggplot_build(g))
gt <- ggplot_gtable(gb)
gt$layout$clip[gt$layout$name=="panel"] <- "off"
grid::grid.newpage()
grid::grid.draw(gt)

关于为什么会这样以及如何纠正它的任何想法?如果我取消对主题参数的注释,我可以接近我想要的,但这会改变绘图区域的纵横比。

最佳答案

不确定这是否是您要找的,但您可以使用 clip = 'off' ggplot 3.0.0 中的选项让文字出现

另见此 answer想要查询更多的信息

# install.packages("devtools")
# devtools::install_github("tidyverse/ggplot2")

library(ggplot2)

g <- ggplot(iris, aes(x = Species, y = Petal.Length)) +
stat_summary(geom = 'bar', fun.y = mean) +
geom_point() +
scale_y_continuous(limits = c(0,8), expand = c(0,0), oob = function(x, ...) x) +
geom_text(label = 'obText', aes(x = 2, y = 9), check_overlap = TRUE) +
# this will allow the text outside of the plot panel
coord_cartesian(clip = 'off') +
theme(plot.margin = margin(4, 2, 2, 2, "cm"))
g



创建于 2018-06-28 由 reprex package (v0.2.0.9000)。

关于r - 如何防止ggplot剪切超出范围的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51090508/

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