这个问题不是关于控制轴限制(我认为),而是关于控制轴线本身的长度。我试图制作一个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)
ggplot(D, aes(x, y)) +
geom_point()
cowplot
包中对ggplot的默认更改非常接近:
但是我怎么能告诉ggplot只绘制直到最后一个轴标签的线,即使点位于该值之外(如在基础R图中)?
答案 0 :(得分:10)
嗯,@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")