【问题标题】:ggplot2 yaxis limit changes the plot [duplicate]ggplot2 y轴限制改变情节[重复]
【发布时间】:2017-04-11 00:36:50
【问题描述】:

这是我的数据

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) 

我想增加 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)

如您所见,我的线路超出了实际数据。我不确定为什么会发生这种情况,因为ylim 应该 只改变我的 y 轴,对我的实际图表不做任何事情。谁能告诉我我在这里做错了什么。

【问题讨论】:

  • ?在我看来,您减少了您的范围。为什么它超出了您的实际数据?由于您的 y 范围有限,丝带被切断。
  • 谢谢。我试图增加我的范围,它现在可以工作了。我想这个问题对社区没有用,所以我会删除它。

标签: r ggplot2


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    • 2017-07-13
    • 2021-12-17
    相关资源
    最近更新 更多