设置ylim后QQ图中stat_qq_line消失的技术求助
解决ggplot中设置ylim后QQ线消失的问题
我来帮你搞定这个QQ线莫名消失的问题~
问题原因
你用的ylim()函数其实是直接过滤掉了所有超出指定y轴范围的数据点,而stat_qq_line()是需要基于全部原始数据来计算拟合线的。当你启用ylim(-0.05,0.05)后,部分数据被剔除,拟合线的计算失去了完整的数据源,自然就显示不出来了。
解决方案
把ylim()替换成coord_cartesian(ylim = ...)就可以啦!coord_cartesian()只是对绘图区域进行缩放,不会删除任何原始数据,这样QQ线的计算依然能基于全部数据完成,同时也能保证y轴范围符合你的并列对比需求。
修改后的完整代码如下:
pqqt <- (ggplot(dataframe_sp500_logreturns_melt, aes(sample = value))+ stat_qq(distribution = qt.scaled, dparams = params_t[]) + stat_qq_line(distribution = qt.scaled, dparams = params_t[]) + coord_cartesian(ylim = c(-0.05, 0.05)) + # 替换原ylim labs(x = "Theoretical quantiles (2)", y = '') )
小提示
如果之后需要调整x轴范围,同样推荐使用coord_cartesian(xlim = c(..., ...)),而不是xlim(),避免再次出现类似的元素消失问题。
内容的提问来源于stack exchange,提问作者mas2
相关产品推荐
相关产品推荐

