R 如何在带有面的ggplot2中仅为轴设置一个限制?
这个问题类似于这个问题:,不同的是我只想限制一侧(例如,只绘制x>0而不是-5000R 如何在带有面的ggplot2中仅为轴设置一个限制?,r,ggplot2,R,Ggplot2,这个问题类似于这个问题:,不同的是我只想限制一侧(例如,只绘制x>0而不是-5000
facets
注意,我想知道这两种简单情况的解决方案:
scale\u x\u continuous(limits=c(-5000,5000))
(与xlim(-5000,5000)
相同)-它完全不考虑点(例如,它们不会用于geom\u smooth())
coord\u笛卡尔(xlim=c(-50005000))
函数-它只是不绘制它们(但仍用于geom\u smooth())
facet\u wrap(~veg,scales=“free\u x)
时,您不知道每个facet的x上限是多少,但您知道它们总是正值。您可以尝试
scale_x_连续(极限=c(0,最大(x)))
这会将下限设置为零,将上限设置为数据的最大值。这就是您要寻找的吗?将限制设置为NA的一侧。在
coord\u
和scale\u
功能中都有效
我通常更喜欢coord_uu,因为它不会删除数据。对于下面的示例,您还需要删除0处的边距,例如使用expand
库(ggplot2)
胡萝卜你应该包括一个例子,假设不同的方面应该以不同的最大值结束(否则它是微不足道的)。这对coord和scales功能都有效。这是否回答了您的问题?最简单的答案已经在上面的评论中:@Tjebo,您应该发布它。它像一个符咒一样工作。@chemdork123干杯。回答补充这是我最终使用的facets。谢谢!我收到消息“未找到对象x”。有没有办法避免使用max(数据$var)实际上使用x?
ggplot(vegLengths, aes(length, fill = veg)) +
geom_density(alpha = 0.2) +
scale_x_continuous(expand = expansion(mult = c(0, 0.05))) +
coord_cartesian(xlim = c(0, NA))