r - 如何删除 ggplot2 图中的绘图和轴之间的空间?

标签 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 轴接壤,并且我不希望在红条末尾后有任何尾随空格。

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

最佳答案

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

expand:长度为 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))

关于r - 如何删除 ggplot2 图中的绘图和轴之间的空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22944828/

相关文章:

r - ggplot 条形图中的恒定宽度

r - 如何为 lm() 设置平衡单向方差分析

r - 如何根据位数将数值转换为小时和分钟

pandas - seabornfacetgrid点图问题

python - plotly python : force axis limits (range)

r 来自 Excel CSV 文件的分组条形图

r - facet_zoom 正在放大到不同的 x 轴值

r - 在 Linux 上用 R 发送电子邮件

r - 使用线条和多因子连接 ggplot 箱线图

R ggplot : geom_tile lines in pdf output