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

R 如何控制ggplot中轴线的长度?,r,plot,ggplot2,R,Plot,Ggplot2,这个问题不是关于控制轴限制(我想),而是关于控制轴线本身的长度。我正在尝试制作一个ggplot(这样我就可以利用它良好的刻面功能),它类似于手动添加轴的基本R图。这些轴仅延伸至最后一个轴标签 我试图模拟的一些设置数据和基本R类型的绘图: library("ggplot2") library("cowplot") library("grid") set.seed(5) x <- rnorm(10) y <- rnorm(10) D <- data.frame(x, y) pl

这个问题不是关于控制轴限制(我想),而是关于控制轴线本身的长度。我正在尝试制作一个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)
cowplot
包对ggplot的默认更改非常接近:


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

好吧,@Gregor在我处理此问题时发表了他的评论,下面是实现。仅出于说明目的,带注释的轴以红色呈现,以使其与标准轴线分开添加。如果要绘制一组这样的图,还可以添加一些逻辑,以编程方式确定
annotate
coord_cartesian
的x和y限制

  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") 

我认为没有内置的方法来修改轴线的长度。您最好的选择可能是关闭轴线,然后使用
注释
(或
cowplot::draw\u line
)绘制所需的自定义线。不确定我怎么会错过这一点。投票结束我自己的问题。
  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")