Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 为ggplot2中的每个面设置不同的轴限制,不使用比例=";“免费”;_R_Ggplot2 - Fatal编程技术网

R 为ggplot2中的每个面设置不同的轴限制,不使用比例=";“免费”;

R 为ggplot2中的每个面设置不同的轴限制,不使用比例=";“免费”;,r,ggplot2,R,Ggplot2,我想要的一般解决方案是能够独立地为每个方面指定任意轴限制 通过将刻度设置为自由,可获得基本功能。例如: ggplot(钻石,aes(x=克拉,y=价格))+geom_point()+facet_wrap(~clarity,nrow=4,ncol=2,scales=“free”) 这实际上是一个非常好的特性,但实际上并不总是那么有用。通常我们想要的是在同一轴上有可比较的变量子组。作为一个玩具例子,考虑上面的钻石案例。我们可能希望第一列中的所有面具有相同的轴限制,第二列中的所有面具有相同的轴限制(

我想要的一般解决方案是能够独立地为每个方面指定任意轴限制

通过将刻度设置为自由,可获得基本功能。例如:

ggplot(钻石,aes(x=克拉,y=价格))+geom_point()+facet_wrap(~clarity,nrow=4,ncol=2,scales=“free”)

这实际上是一个非常好的特性,但实际上并不总是那么有用。通常我们想要的是在同一轴上有可比较的变量子组。作为一个玩具例子,考虑上面的钻石案例。我们可能希望第一列中的所有面具有相同的轴限制,第二列中的所有面具有相同的轴限制(但与第一列不同)


是否有一种解决方案可以通过标准ggplot使用来实现这一点。

在结束之前,我认为扩展@Axeman的建议是很重要的:直接使用
facet\u wrap
可能无法做到这一点,但是这种行为可以通过将您想要的组分块并使用
cowplot
将它们缝合在一起来实现。在这里,我将质量分为“低”和“高”,但分组是任意的,可以是任何您想要的。可能希望稍微弄乱样式,但出于此目的,
cowplot
中的默认值是可以接受的:

library(cowplot)

lowQ <- 
  ggplot(diamonds %>%
           filter(as.numeric(clarity) <= 4)
         , aes(x = carat
               , y = price)) +
  geom_point() +
  facet_wrap(~clarity
             , nrow = 1)  


hiQ <- 
  ggplot(diamonds %>%
           filter(as.numeric(clarity) > 4)
         , aes(x = carat
               , y = price)) +
  geom_point() +
  facet_wrap(~clarity
             , nrow = 1)

plot_grid(lowQ, hiQ, nrow = 2)
库(cowplot)
低质量%
过滤器(如数字(清晰度)4)
,aes(x=克拉)
,y=价格)+
几何点()+
面_包裹(~0)
,nrow=1)
绘图网格(低Q、高Q、nrow=2)

我不知道有什么(缺少大量手动网格代码修补),但这里有一些。没有标准解决方案。我可能会分别生成这两个列,并使用
cowplot
将它们粘在一起。在我看来,这将以与
labeller
相同的方式编程。请求按列操作类似于
.rows
.cols
页边距规范。投票关闭实际上是一个功能请求,因此对那些人来说不是正确的地方。我投票关闭这个问题是因为它确实是一个功能请求,以前已经提出过(由@joran研究),被认为是有效的,但正在等待实施。我建议不要关闭这个问题。问题的答案是,标准ggplot中不存在解决方案,但有一些现成的解决方案。此外,这一问题在这里比在其他地方更为透明