2017-04-10 98 views
0

这里是我的数据GGPLOT2 y轴极限改变情节

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

我使用ggplot绘制fitmean.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

百分比我wanto到增加y轴的范围,所以我使用添加了一个额外的参数

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轴,并对我的实际图形没有任何影响。任何人都可以告诉我我在这里做错了什么。

+0

?你在我看来减少了你的范围。为什么它超出了你的实际数据?由于你的y范围有限,色带被切断。 – Axeman

+0

谢谢。我试图增加我的范围,现在它工作。我想这个问题对社区没有用,所以我会删除它。 – user53020

回答

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))