R 包含100%和80%数据的散点图中的数据等高线
我试图包围散点图的数据点(使用ggplot2),以便(1)100%的数据点和(2)80%的数据点位于该圆圈内。(请参见-与此sctech类似(请原谅snippingtool的延迟执行)) 这是我的虚拟数据集:R 包含100%和80%数据的散点图中的数据等高线,r,ggplot2,scatter-plot,contour,R,Ggplot2,Scatter Plot,Contour,我试图包围散点图的数据点(使用ggplot2),以便(1)100%的数据点和(2)80%的数据点位于该圆圈内。(请参见-与此sctech类似(请原谅snippingtool的延迟执行)) 这是我的虚拟数据集: x y 1 2 1 3 1 4 1 5 2 1 2 2 2 3 2 4 2 5 3 1 3 2 3 3 3 4 4 1 4 2 4 3 5 1 5 2 5 3 5 4 5 9 5 10 6 1
x y
1 2
1 3
1 4
1 5
2 1
2 2
2 3
2 4
2 5
3 1
3 2
3 3
3 4
4 1
4 2
4 3
5 1
5 2
5 3
5 4
5 9
5 10
6 1
6 2
6 3
6 4
6 5
6 6
6 8
6 9
6 10
7 1
7 2
7 3
7 4
7 5
7 6
7 7
7 8
7 9
7 10
8 2
8 3
8 4
8 5
8 6
8 7
8 8
8 9
我尝试了多种方法来实现这一点,但没有任何方法真正满足我想要实现的目标
我的第一个方法是geom\u density2d()
。然而,我在解释结果时遇到了困难,因为我真的不知道级别
意味着什么
我尝试了以下方法:
ggplot(myData, aes(x,y)) + geom_point() + geom_density2d(bins=4, aes(colour=..level..))
这导致了这幅图:
这是好的,因为它完成了轮廓上的凹痕。然而,我不知道如何得到一个100%包围我的数据的外壳,以及一个80%包围我的数据的第二个外壳
我的第二种方法是使用ggalt
包的geom_encycle()
函数。这将导致下面的图
这一次,我的所有数据点都被包围了——到目前为止还不错。但是geom_contour()
图中的“凹痕”不存在,我不知道如何添加仅覆盖80%数据点的“镶嵌物”
我的第三种方法是使用geom\u bagplot()
函数(已描述)
(对于geom_bag(),我无法使用prop=1.0覆盖所有数据点,但将其设置为0.9就足够了)
这将生成以下曲线图:
这一次,凹痕再次不存在。另一个问题是,设置prop=0.7
和prop=0.7
会产生完全相同的结果。另一个问题是,船体不像geom_contour()
那样平滑
如何生成与中的草图相似的绘图(使用ggplot2)
提前谢谢
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
编辑:
显示我的数据点的真实分布的实际数据集:
x y
1 -19.397412 47.544324
2 -8.213419 69.892953
3 -29.926849 39.743923
4 -75.377447 79.817208
5 -9.215048 40.705533
6 -42.868995 45.721222
7 -85.590572 84.058463
8 -62.544121 69.371364
9 -60.209205 64.546267
10 3.598963 20.109707
11 -4.552074 61.3339
12 -197.619021 52.225312
13 -147.133639 56.96088
14 -59.402414 56.487012
15 -68.361091 46.811878
16 -105.556485 57.603839
17 -94.354948 32.706933
18 -107.26281 28.477637
19 -155.692967 35.106937
20 -80.819257 30.664812
21 -142.055086 33.728788
22 -118.353934 27.362929
23 -114.634413 31.501665
24 -113.470642 29.136781
25 -181.380891 41.046883
26 -171.106218 23.359443
27 -156.720415 35.450407
28 -165.042839 29.349575
29 -92.869955 25.478965
30 -114.78719 23.860353
31 -134.115204 25.491367
32 -109.430656 19.105614
33 -120.451655 25.97992
34 -87.570713 21.111895
35 -91.222139 22.484895
36 -208.979695 38.311266
37 -98.814223 16.121487
38 -201.812263 49.547512
39 -168.948464 39.583593
40 -112.44335 20.979357
41 -174.138029 28.470047
42 -220.936718 33.452972
43 -169.687859 33.173458
44 -157.119306 38.573987
45 -150.682075 41.66627
46 -77.397116 27.220171
47 -177.559527 53.278523
48 -61.212396 6.796908
49 -94.602774 24.669706
50 -204.333869 37.002679
51 -124.442364 31.519392
52 -165.722504 39.464188
53 -57.849212 23.973774
54 -106.643382 38.560785
55 -90.679094 29.863184
56 -132.476054 31.988021
57 -188.33621 29.658416
58 -136.247184 38.870171
59 -59.929772 20.626164
60 -121.020003 33.862312
61 -82.968422 33.033312
62 -79.130004 32.800121
63 -51.463395 23.452366
64 -63.819269 27.257994
65 -64.02259 27.711516
66 -66.876407 18.156063
67 -68.175454 22.996369
68 -108.640035 29.915306
69 -21.512647 16.930815
70 -66.902542 17.177093
71 -160.262625 33.061052
72 -41.672641 30.510433
73 -83.31784 28.965415
74 -132.410284 22.843924
75 -54.724716 10.642682
76 -69.688094 30.798878
77 -120.775133 24.597096
78 -78.655551 30.368373
79 -68.299767 35.937048
80 -45.037891 21.636422
81 -49.679704 19.508719
82 -62.018393 76.199247
83 -113.777141 27.730892
84 -74.630501 49.062317
85 -95.154793 37.279829
86 -65.229569 46.26744
87 -42.139223 16.38709
88 -94.186408 28.708069
89 -100.920471 27.533579
90 -66.332707 22.573064
91 -26.419725 13.948061
92 -152.704377 34.165409
93 -50.309209 22.032052
94 -125.896489 34.411915
95 -119.304969 28.786249
96 -41.689412 37.314049
97 -99.936438 31.363461
98 -74.807901 24.259652
这将生成以下曲线图:
我想说明的是,我的大部分数据点都在较低的部分,但仍然围绕着所有的数据,比如:
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
EDIT2:
“最终目标”是将没有相应数据点的两个等高线与另一个数据集进行比较,以查看是否存在重叠,但是,在不使结果图过于拥挤的情况下,数据点过多。如何选择80%的点?可以随机采样80%的数据——没有代表80%数据的唯一点集。有无限多条曲线可以覆盖80%的数据。你到底想干什么?您希望满足哪些约束条件。你是在对这些点做某种分配假设吗?如果是的话,你应该说清楚。嘿!谢谢你的快速回答!我没有想到在展示我的虚拟数据时选择点的无限可能性,对不起!我将用实际数据集编辑我的原始帖子,以显示点的分布。我的目标是显示大多数数据点(例如80%)集中在较低的部分,同时仍然向整个数据集添加了一个环绕的外壳。将实际数据添加到原始帖子中,并添加了一个新的草图。
stat_density2d
中的bins
参数的使用在之前和之后都进行了讨论。也许值得一看。这里推荐了一个答案emdbook::HPDregionplot
,它允许您指定prob=0.8
。
x y
1 -19.397412 47.544324
2 -8.213419 69.892953
3 -29.926849 39.743923
4 -75.377447 79.817208
5 -9.215048 40.705533
6 -42.868995 45.721222
7 -85.590572 84.058463
8 -62.544121 69.371364
9 -60.209205 64.546267
10 3.598963 20.109707
11 -4.552074 61.3339
12 -197.619021 52.225312
13 -147.133639 56.96088
14 -59.402414 56.487012
15 -68.361091 46.811878
16 -105.556485 57.603839
17 -94.354948 32.706933
18 -107.26281 28.477637
19 -155.692967 35.106937
20 -80.819257 30.664812
21 -142.055086 33.728788
22 -118.353934 27.362929
23 -114.634413 31.501665
24 -113.470642 29.136781
25 -181.380891 41.046883
26 -171.106218 23.359443
27 -156.720415 35.450407
28 -165.042839 29.349575
29 -92.869955 25.478965
30 -114.78719 23.860353
31 -134.115204 25.491367
32 -109.430656 19.105614
33 -120.451655 25.97992
34 -87.570713 21.111895
35 -91.222139 22.484895
36 -208.979695 38.311266
37 -98.814223 16.121487
38 -201.812263 49.547512
39 -168.948464 39.583593
40 -112.44335 20.979357
41 -174.138029 28.470047
42 -220.936718 33.452972
43 -169.687859 33.173458
44 -157.119306 38.573987
45 -150.682075 41.66627
46 -77.397116 27.220171
47 -177.559527 53.278523
48 -61.212396 6.796908
49 -94.602774 24.669706
50 -204.333869 37.002679
51 -124.442364 31.519392
52 -165.722504 39.464188
53 -57.849212 23.973774
54 -106.643382 38.560785
55 -90.679094 29.863184
56 -132.476054 31.988021
57 -188.33621 29.658416
58 -136.247184 38.870171
59 -59.929772 20.626164
60 -121.020003 33.862312
61 -82.968422 33.033312
62 -79.130004 32.800121
63 -51.463395 23.452366
64 -63.819269 27.257994
65 -64.02259 27.711516
66 -66.876407 18.156063
67 -68.175454 22.996369
68 -108.640035 29.915306
69 -21.512647 16.930815
70 -66.902542 17.177093
71 -160.262625 33.061052
72 -41.672641 30.510433
73 -83.31784 28.965415
74 -132.410284 22.843924
75 -54.724716 10.642682
76 -69.688094 30.798878
77 -120.775133 24.597096
78 -78.655551 30.368373
79 -68.299767 35.937048
80 -45.037891 21.636422
81 -49.679704 19.508719
82 -62.018393 76.199247
83 -113.777141 27.730892
84 -74.630501 49.062317
85 -95.154793 37.279829
86 -65.229569 46.26744
87 -42.139223 16.38709
88 -94.186408 28.708069
89 -100.920471 27.533579
90 -66.332707 22.573064
91 -26.419725 13.948061
92 -152.704377 34.165409
93 -50.309209 22.032052
94 -125.896489 34.411915
95 -119.304969 28.786249
96 -41.689412 37.314049
97 -99.936438 31.363461
98 -74.807901 24.259652