gpt4 book ai didi

r - ggplot2:在绘图区域之外绘制geom_segment()

转载 作者:行者123 更新时间:2023-12-04 23:12:43 24 4
gpt4 key购买 nike

我在ggplot2中创建了两个方面的图。我想在绘图区域外添加一个箭头。多个问题试图解决这个问题:
How to draw lines outside of plot area in ggplot2?
Displaying text below the plot generated by ggplot2

但我无法使我的榜样行之有效。另外,我希望有一种更简单的方法来实现这一目标?

我试图增加plot.margins并使用coord_cartesian(),但均无济于事。

enter image description here

相反,我想要:

enter image description here

我的虚拟示例:

# read library to assess free data
library(reshape2)
library(ggplot2)


ggplot(tips,
aes(x=total_bill,
y=tip/total_bill)) +
geom_point(shape=1) +
facet_grid(. ~ sex) +
# define the segment outside the plot
geom_segment(aes(x = 10,
y = -0.25,
xend = 10,
yend = 0),
col = "red",
arrow = arrow(length = unit(0.3, "cm"))) +
theme_bw() +
# limit the displayed plot extent
coord_cartesian(ylim = c(0, 0.75)) +
# increase plot margins - does not help
theme(plot.margin = unit(c(1,1,1,0), "lines"))

最佳答案

您可以使用clip="off"中的参数coord_cartesian在面板外部绘制。我还使用expandscale_y参数将y轴从零开始。在y开始位置上有一些手动选择。

所以你的例子

library(reshape2)
library(ggplot2)

ggplot(tips,
aes(x=total_bill,
y=tip/total_bill)) +
geom_point(shape=1) +
facet_grid(. ~ sex) +
annotate("segment", x=12, y=-0.05, xend=12, yend=0,
col="red", arrow=arrow(length=unit(0.3, "cm"))) +
scale_y_continuous(expand=c(0,0))+
theme_bw() +
coord_cartesian(ylim = c(0, 0.75), clip="off") +
theme(plot.margin = unit(c(1,1,1,0), "lines"))

(由于您未绘制美学图,所以我将 geom_segment更改为 annotate)

哪个产生

enter image description here

关于r - ggplot2:在绘图区域之外绘制geom_segment(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52412361/

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