ggplot:根据整个数据集保持规范化,从而剪切出PDF

时间:2013-11-23 20:40:27

标签: r ggplot2

我有一个以下结构的数据框:

   x                   series
11.1     "without restraints"
 9.8     "without restraints"
 7.0             "restraints"
 ...

我想绘制按系列分组的数据的累积分布函数。通常它可以使用命令

正常工作
ggplot(data = df, aes(x = x, col = series)) + stat_ecdf(geom = "smooth") + scale_x_continuous(limits=c(min_x, max_x))

x值范围从3.7到20左右。如果我将限制设置为3和25,则输出看起来像http://i40.tinypic.com/2crm5xc.jpg 但是,如果我将限制设置为3和10,则输出为http://i42.tinypic.com/24viudg.jpg,现在根据3到10范围内的数据集计算分数/密度。有没有一种方法可以用整个数据集,以便相对于完整的数据集给出密度(因此它应该在x值为10时约为0.13)。

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

您可以使用coord_cartesian

+ coord_cartesian(xlim = c(3, 10))

scale_x_continuous中指定的限制相比,coord_cartesian确实使用整个数据集。

来自?coord_cartesian

  

设置坐标系的限制将缩放绘图(就像你用放大镜看一样),并且不会像刻度上的设置限制那样改变基础数据。

整个代码:

ggplot(data = df, aes(x = x, col = series)) + 
 stat_ecdf(geom = "smooth") + 
 coord_cartesian(xlim = c(min_x, max_x))