ggplot2 yaxis限制改变了情节

时间:2017-04-10 16:16:49

标签: r ggplot2

这是我的数据

https://www.dropbox.com/s/mveo3csln8mafx8/test.csv?dl=0

我正在使用ggplot将fit绘制为mean.ncx

的百分比
ggplot() + 
geom_line(data=test,aes(y = (fit-mean.nc)/mean.nc*100, x=x)) +
geom_ribbon(data=test,aes(x= x, ymin= (se.lw - mean.nc)/mean.nc *100,
                        ymax= (se.up - mean.nc)/mean.nc*100),alpha=0.2) 

enter image description here

我想增加y轴的范围,所以我使用ylim添加了一个额外的参数

ggplot() + 
  geom_line(data=test,aes(y = (fit-mean.nc)/mean.nc*100, x=x)) +
  geom_ribbon(data=test,aes(x= x, ymin= (se.lw - mean.nc)/mean.nc *100,
                    ymax= (se.up - mean.nc)/mean.nc*100),alpha=0.2) +
  ylim(-70,70)

enter image description here

如您所见,我的线条超出了实际数据范围。鉴于ylim应该,我不确定为什么会发生这种情况 只改变我的y轴并对我的实际图形不做任何操作。任何人都可以告诉我这里我做错了什么。

1 个答案:

答案 0 :(得分:2)

ylimxlim确实对数据进行了子集化。 您正在寻找的内容可能在coord_cartesian

之内
ggplot() + 
geom_line(data=test, aes(y = (fit-mean.nc)/mean.nc*100, x = x)) +
geom_ribbon(data=test, aes(x = x, ymin= (se.lw - mean.nc) / mean.nc * 100,
                        ymax = (se.up - mean.nc) / mean.nc * 100), alpha = 0.2) +
coord_cartesian(ylim = c(-70, 70))