我试图改变情节中的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
它不起作用。知道这是什么问题吗?
感谢。
答案 0 :(得分:11)
将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
开始。