在ggplot中添加空格/增加X和Y轴之间的间距

时间:2020-04-28 11:35:29

标签: r ggplot2 themes

我正在为需要特定外观的项目做一些绘图。他们将需要在轴线和绘图面板之间留一些空间。

library(ggplot2)

plot_data <- data.frame(X = 1:10, Y = 1:10)

ggplot() + geom_point(data = plot_data, aes(x = X, y = Y)) +
  theme(axis.line = element_line(colour = "black", linetype = "solid"))

我有什么

What I have

我想在绘图的X轴和Y轴之间增加一些距离,但是我的轴线也没有扩展,就像使用我的expand命令一样。

plot_data <- data.frame(X = 1:10, Y = 1:10)


ggplot() + geom_point(data = plot_data, aes(x = X, y = Y)) +
  theme(axis.line = element_line(colour = "black", linetype = "solid"))+
scale_x_continuous(name = "X", limits = c(1, 10),  expand = c(0.1,0)) +
  scale_y_continuous(name = "Y", limits = c(1, 10),  expand = c(0.1,0))

我能做什么 What I can do

在R中是否有一种快速而可靠的方法?

我想要什么 What i want

谢谢大家!

2 个答案:

答案 0 :(得分:3)

您可以使用lemon包来实现对这些行的“封顶”。您可以使用以下代码来实现此目的:

library(ggplot2)
library(lemon)

### your code
plot_data <- data.frame(X = 1:10, Y = 1:10)

p <- ggplot() + geom_point(data = plot_data, aes(x = X, y = Y)) +
  theme(axis.line = element_line(colour = "black", linetype = "solid"))+
  scale_x_continuous(name = "X", limits = c(1, 10),  expand = c(0.1,0)) +
  scale_y_continuous(name = "Y", limits = c(1, 10),  expand = c(0.1,0))

### using the lemon package
p + coord_capped_cart(bottom='right', left='none', gap = 0.15)

### mimic the view of your plot
p2 <- p + coord_capped_cart(bottom='right', left='none', gap = 0.15)
p2 + theme(panel.background = element_rect(fill = "white"))

产生以下图片:

enter image description here

答案 1 :(得分:2)

另一个选择:删除轴线并使用geom_segment制作新轴线。

plot_data <- data.frame(X = 1:10, Y = 1:10)

library(ggplot2)



ggplot() + geom_point(data = plot_data, aes(x = X, y = Y)) +
    theme(axis.line = element_blank(),panel.background =element_blank())+
  geom_segment(aes(x=0,y=1,xend=0,yend=10))+
  geom_segment(aes(x=1,y=0,xend=10,yend=0))+
  scale_x_discrete(limits=c(1,2,3,4,5, 8,10))+
  scale_y_discrete(limits=c(1:10))

enter image description here