我有一个以下结构的数据框:
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)。
感谢您的帮助。
答案 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))