将绘图窗口扩展到ggplot

时间:2015-12-25 06:20:04

标签: r ggplot2

ggplot我有一个图表,其x轴标签延伸到RStudio中的绘图窗口之外,即使我尝试导出图片,无论我拍摄的图片有多宽。以下是limits中使用scale_x_continuous的当前解决方案。是否有可能延长图片以便我可以捕获我的最后一个x轴标签(即25021643),但没有延长线段?

enter image description here

上面重现的代码:

library(ggplot2)
p <- 
  ggplot(NULL) + 
  xlab("x-axis") + 
  theme_bw() +
  scale_x_continuous(breaks = as.integer(seq(0,25021643,(25021643/4))), limits=c(0,26021643),labels = as.integer(seq(0,25021643,(25021643/4))), expand = c(0,0)) +
  scale_y_continuous(limits = c(-1, (nrow(chr5)+1)), expand = c(0,0))  +
  geom_hline(yintercept = -1) +
  geom_segment(aes(x = 0, y = -1, xend = 0, yend = -0.9)) +
  geom_segment(aes(x = 25021643, y = -1, xend = 25021643, yend = -0.9)) +
  theme(panel.grid.major=element_blank(),
        panel.grid.minor=element_blank(),
        panel.border=element_blank(),
        axis.ticks.y = element_blank(), 
        axis.title.y = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks.x = element_line(size=1), 
        axis.title.x = element_text(size=20),
        axis.text.x = element_text(size=20))
p

2 个答案:

答案 0 :(得分:3)

添加plot.margin=unit(c(0,20,0,0),"mm")似乎可以胜任。

答案 1 :(得分:0)

您也可以使用:

plot.margin = margin(r = 20, unit = "mm")

这是做同样事情的另一种方式,但避免写出图所有边的值:'t' 是顶部,'r' 是右边,'l' 是左边,'b' 是底部。你可以写所有或任何你想用逗号分隔的边:

plot.margin = margin(r = 20, l = 30, b = 15, t = 40, unit = "mm")

或者,如果您希望使用标准单位 ('pt'):

plot.margin = margin(r = 20)