使用多面图确定 ylim 时如何忽略一个因素
在下面的(无意义的)示例中,我想绘制 y1 和 y2 曲线,但根据 y1 曲线确定 ylim,忽略 y2。
这是示例:
library(ggplot2)
curves <- data.frame(expand.grid(seq(-2,2,0.1), c(2,4), c(1,2)))
names(curves) <- c("x","p","c")
curves$y1 <- splat(function(x,p,c, ...) c * p * exp(- x^p))(curves)
curves$y2 <- splat(function(x,p,c, ...) c + x * p)(curves)
curves <- melt.data.frame(curves, id.vars=1:3)
ggplot(curves, aes(x, value, color = variable)) +
geom_line() +
facet_grid(p ~ c, scales="free_y")
我希望第一行具有 ylim(0,4),第二行具有 ylim(0,8)。有什么想法吗?最好是如何让 ggplot 确定正确的限制,而不是手动输入它们?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
下面的作品,虽然感觉很笨拙。毫无疑问,你可以在这方面进行改进。
我的解决方法是从 data.frame 中删除您不想包含在图中的值:
The following works, although it feels clumsy. No doubt you can improve on this.
My workaround is to delete values from the data.frame that you don't want to include in the plot:
如果你以这个相当冗长的代码结束,
你会得到这个,
它基于y轴比例y1 曲线(虽然不在你的 4 和 8 上)。
If you end with this rather verbose code
you get this,
which bases the y-axis scale on the y1 curve (though not on your 4 and 8).