如何在ggplot2图形中移除绘图和坐标轴之间的空白?

6

我正在使用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

...我想手动控制这个白色空间的量。我尝试过设置plot.marginpanel.margin,但是它们似乎控制着图表的其他方面。请注意,对于我的示例图片,红色从1点开始,正如预期的那样。我希望它与y轴相接,而且在红色条结束后不要有任何尾随空间。

非常感谢任何帮助!理想情况下,我只想移除所有的白色填充空间。谢谢!


2
这个问题无法重现,因为它没有数据。另外请注意,您可以上传图片。这可能是讨论此主题的更好方式,而不是纯文本方法。 - Tyler Rinker
1
我加入了一个数据点,因此它现在包含了复制问题所需的所有数据。为了更准确地说明我的问题,我还添加了实际绘图的png文件。请给予指导! - jake9115
1个回答

13
尝试在您的绘图代码中添加scale_x_continuous(expand = c(0, 0))。从帮助文本中得知,expand是一个长度为两个的数字向量,提供了一个乘法和加法常数,用于扩展比例尺的范围,以便在数据和轴之间有一个小间隙。
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))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接