ggplot:绘制CDF的剪切图,同时根据整个数据集保持正常化

Axe*_*her 2 r ggplot2

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

   x                   series
11.1     "without restraints"
 9.8     "without restraints"
 7.0             "restraints"
 ...
Run Code Online (Sandbox Code Playgroud)

我想绘制按系列分组的数据的累积分布函数.一般情况下,它与命令一起工作正常

ggplot(data = df, aes(x = x, col = series)) + stat_ecdf(geom = "smooth") + scale_x_continuous(limits=c(min_x, max_x))
Run Code Online (Sandbox Code Playgroud)

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

谢谢你的帮助.

Sve*_*ein 5

你可以使用coord_cartesian:

+ coord_cartesian(xlim = c(3, 10))
Run Code Online (Sandbox Code Playgroud)

与指定的限制相反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))
Run Code Online (Sandbox Code Playgroud)