ggplot中是否有R函数将绘图限制在最大数据范围内?

ggplot中是否有R函数将绘图限制在最大数据范围内?,r,ggplot2,R,Ggplot2,奇怪的问题,但我似乎找不到一个巧妙的方法来管理它!我在R中制作了一些科学图形,每个图形都有一大堆通过ggplot2绘制的图,这些图用plot_网格堆叠在一起,沿着相同的x轴匹配。到目前为止一切都很好,我几乎已经准备好输出和润色illustrator中的所有图形 最后一步是对每个图施加限制,使堆栈中每个图之间的空间尽可能窄。我以第一次通过的方式完成了这项工作: test1<-ggplot(mtcars, aes(mpg, hp)) + geom_line() + theme(plo

奇怪的问题,但我似乎找不到一个巧妙的方法来管理它!我在R中制作了一些科学图形,每个图形都有一大堆通过ggplot2绘制的图,这些图用plot_网格堆叠在一起,沿着相同的x轴匹配。到目前为止一切都很好,我几乎已经准备好输出和润色illustrator中的所有图形

最后一步是对每个图施加限制,使堆栈中每个图之间的空间尽可能窄。我以第一次通过的方式完成了这项工作:

test1<-ggplot(mtcars, aes(mpg, hp)) + 
  geom_line() +
  theme(plot.margin = unit(c(0, 0, 0, 0), "cm"),
        axis.line.y.right = element_line(colour = "black", size=1), 
        axis.line.y.left = element_line(colour = "black", size=1),
        axis.ticks.y.right = element_blank(),
        axis.text.y.right = element_blank(),        
        axis.title.x = element_blank(),    
        axis.ticks.x = element_blank(),    
        axis.line.x.bottom = element_blank(),    
        axis.text.x =element_blank(),
        axis.line = element_line(colour = "black", size =1),)

test2<-ggplot(mtcars, aes(mpg, drat)) + 
  geom_line() +
  theme(plot.margin = unit(c(0, 0, 0, 0), "cm"),
        axis.line.y.right = element_line(colour = "black", size=1), 
        axis.line.y.left = element_line(colour = "black", size=1),
        axis.ticks.y.right = element_blank(),
        axis.text.y.right = element_blank(),        
        axis.title.x = element_blank(),    
        axis.ticks.x = element_blank(),    
        axis.line.x.bottom = element_blank(),    
        axis.text.x =element_blank(),
        axis.line = element_line(colour = "black", size =1),)

test3<-ggplot(mtcars, aes(mpg, wt)) + 
  geom_line() + 
  theme(plot.margin = unit(c(0, 0, 0, 0), "cm"),
                      axis.line.y.right = element_line(colour = "black", size=1), 
                      axis.line.y.left = element_line(colour = "black", size=1),
                      axis.ticks.y.right = element_blank(),
                      axis.text.y.right = element_blank(),        
                      axis.title.x = element_blank(),    
                      axis.ticks.x = element_blank(),    
                      axis.line.x.bottom = element_blank(),    
                      axis.text.x =element_blank(),
                      axis.line = element_line(colour = "black", size =1),)

test<- plot_grid(test1, test2, test3, ncol=1, align="v", rel_heights = c(1,1,1))
test

这看起来像是我在主题部分做的事情。不确定,但我们将不胜感激

我不太理解这个问题,你需要发布一个可复制的例子

你是在问如何限制轴的范围吗?如果是的话

+ scale_x_continuous(limits = c(0, 1))
将调整x轴范围。y的类似函数。只需调整0,1。将其添加到网格中的每个绘图中

更新:

gglist <- lapply(gglist, function(x) x + scale_x_continuous(limits = c(0, 1)) )

如果希望绘图之间没有空间,则需要在主题调用中使用plot.margin值。可以指定负值和不同的单位。所以,像这样的东西可以做你想做的:

图书馆GGPLOT2 图书馆考图 > > ******************************************************** >注意:从版本1.0.0开始,cowplot不会更改 >不再使用默认的ggplot2主题。恢复以前的 >行为,执行: >主题集主题图 > ********************************************************
我的主题你能做一个吗?没有数据、代码或输出,我们只剩下我们的想象力来了解这些图表是什么,以及您试图做什么。网格图是什么?嗨,卡米尔,谢谢你的回答。根据工作规则,我实际上无法发布任何数据、代码或输出,但我可能可以更好地解释!我有7个简单的线图在ggplot,和plot_网格oops!是一个工具,我用来将它们垂直堆叠成一个图形。7在这个堆栈中排列,因为它们之间的x轴是一致的。把它想象成一个双y图,但并不像大多数双y图那样不可能阅读。我想通过删除ggplot在绘图周围自动生成的任何类型的缓冲区来限制7个绘图之间的空间。单击我发布的链接。您不必发布确切的数据,您可以创建虚拟数据或使用随通用软件包提供的数据。但是现在我们几乎没有什么可以帮助你的,或者说这会对未来的用户有帮助!这应该足以理解这个问题了?是的,这离我的问题越来越近了!我想知道为什么每个堆叠的地块周围都有一个间隙。我只是想看看是否有一种方法可以给每一个情节加上y限制,因为总共有将近50个!确定-您可以编写一个函数,该函数采用ggplot并添加scale_x_continuous。然后在网格中的所有GGPlot中循环应用itHmm,这似乎解决不了问题。scale_x_continuous位不会删除垂直方向上添加的间隙,也不会scale_y_continuous,因为我仍然需要知道我正在绘制的特定数据范围的限制,然后为每个单独的片段输入它们。您需要创建一个可复制的示例,正如其他人所说的那样,它已经在上面了!如果我们看一看我包含的示例,我希望缩小hp和drat绘图之间的空间,使绘制的线几乎接触