如何在ggplot中控制轴线的长度?

kmm*_*kmm 5 plot r ggplot2

这个问题不是关于控制轴限制(我认为),而是控制轴线本身的长度.我正在尝试制作一个ggplot(以便我可以利用其漂亮的刻面功能),这类似于手动添加轴的基本R图.这些轴仅延伸到最后一个轴标签.

我试图模仿的一些设置数据和基本R类型的图:

library("ggplot2")
library("cowplot")
library("grid")

set.seed(5)
x <- rnorm(10)
y <- rnorm(10)
D <- data.frame(x, y)

plot(x, y, axes = FALSE)
axis(1)
axis(2)
Run Code Online (Sandbox Code Playgroud)

基础R图

ggplot(D, aes(x, y)) +
  geom_point()
Run Code Online (Sandbox Code Playgroud)

cowplot包中对ggplot的默认更改非常接近:

在此输入图像描述

但是,我怎么能告诉ggplot只绘制直到最后一个轴标签的线,即使点位于该值之外(如在基础R图中)?

eip*_*i10 13

好吧,@ Gregor在我做这个的时候发表了他的评论,所以这是实施.仅出于说明的目的,带注释的轴以红色呈现,以显而易见它们与标准轴线分开添加.如果你打算做了一堆这样的情节,你也可以添加一些逻辑,以编程方式确定x和y的限制annotatecoord_cartesian.

  my_theme = list(theme_bw(),
                  theme(panel.border=element_blank(), 
                        panel.grid.major=element_blank(),
                        panel.grid.minor=element_blank()),
                  labs(y="",x=""))

  ggplot(D, aes(x,y)) +
    geom_point() +
    coord_cartesian(xlim=c(-1.4,1.4), ylim=c(-2.4,1.4)) +
    my_theme +
    annotate(x=-1.4, xend=-1.4, y=-2, yend=1, colour="red", lwd=0.75, geom="segment") +
    annotate(x=-1, xend=1, y=-2.4, yend=-2.4, colour="red", lwd=0.75, geom="segment") 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述