如何在ggplot2数字中删除我的绘图和轴之间的空间?

时间:2014-04-08 18:03:53

标签: r plot ggplot2

我正在使用ggplot2制作一些简单的数字,其中一系列使用坐标沿x轴制作矩形。但是,我似乎无法弄清楚如何删除绘图的实际开始(x = 1位置)和绘图的最左边缘之间的填充,即(0,0)。例如,我使用以下代码:

library(ggplot2)
library(grid)
png(filename="sample.png", width=5600, height=70)
plot.data <- data.frame(start.points=c(1),end.points=c(10))
p <- ggplot(plot.data)
p + geom_rect(aes(xmin=start.points, xmax=end.points, ymin=0, ymax=1), fill="red") + theme_bw() + ylab(paste(sprintf("%60s", ""), "\nSample_label\n")) + theme(axis.title.y = element_text(size = 30, colour = "black", angle = 0))
dev.off()

变量my_startmy_stop只是绘制矩形的起点和终点坐标列表。所以,这个情节创造了一个长长的水平图,就像我想要的那样。

问题是,这个数字看起来像这样:

axis_label    | <-- white space --> <-----actual plot------> <-- white space--> |

实际情节: enter image description here

...我想手动控制这一数量的white space。我尝试过设置plot.marginpanel.margin,但这些似乎可以控制情节的其他方面。请注意,在我的样本图片上,红色从预期的1点开始。我希望这个与y轴相邻,我不希望在红色条结束后有任何尾随空格。

任何帮助将不胜感激!理想情况下,我会删除所有空白填充。谢谢!

1 个答案:

答案 0 :(得分:11)

尝试添加以将scale_x_continuous(expand = c(0, 0))添加到您的地图代码中。来自help text

展开:长度为2的数字向量,给出乘法和加法常量,用于扩展比例范围,以便数据和轴之间存在小的间隙。

ggplot(plot.data) +
  geom_rect(aes(xmin = start.points, xmax = end.points, ymin = 0, ymax = 1), fill = "red") +
  scale_x_continuous(expand = c(0, 0))