我正在尝试更改情节中的 ylim。但是一旦我改变它,情节就消失了。我无法弄清楚原因。有人可以帮我解决问题的根源吗?

>df<-data.frame(Category=c("A", "B", "C", "D", "B", "A", "D", "C"), Setup=c("X", "Y"), Gain=c(1.4, 1.45, 1.43, 1.48, 1.33, 1.37, 1.04, 1.09))
>p<-ggplot( df, aes(Setup, Gain)) + ylim(0.9, 1.25) + geom_bar(stat="identity") + facet_wrap( "Category", ncol=2 )

当我删除 ylim() 时,上面的代码有效,但使用 ylim 时它不起作用。知道有什么问题吗?

谢谢。

最佳答案

ylim(0.9, 1.25) 替换为

coord_cartesian(ylim = c(0.9, 1.25))

函数 ylim 还会影响用于绘图的数据点。相比之下,coord_cartesian 不会改变底层数据。

完整的命令:
ggplot(df, aes(Setup, Gain)) +
  coord_cartesian(ylim = c(0.9, 1.25)) +
  geom_bar(stat = "identity") +
  facet_wrap("Category", ncol = 2)
ylim 方法将产生以下数据:
df[df$Gain >= 0.9 & df$Gain <= 1.25, ]

  Category Setup Gain
7        D     X 1.04
8        C     Y 1.09

此外,它将删除所有条形,因为它们从 0 开始。

关于R:ggplot ylim 不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21734557/

10-12 19:11