0

我的数据包含 x 轴点和每个 x 轴点的 y 值。x 轴点分布不均匀。我需要可视化 x 轴点是如何聚类的,以及这些聚类的 y 值是如何出现的。要查看 x 值是如何聚集的,我可以在 x 值上绘制密度图,但是它不反映该集群处的 y 值。例如 - 如果 x 轴上的 100 个点(假设)彼此非常接近,并且都具有正 y 值,我希望我的绘图在该点上升,如果这 100 个点具有负 y 值,我希望我的绘图下降情节中的零线,如果这 100 个点同时具有正负 y 值,我希望我的情节在零点附近。同样,即使这 100 个点都具有正值,如果它们沿长距离分散,我希望绘图靠近零线。

简而言之,x 点的密度及其 y 值对我来说都很重要,我想绘制平滑线。谁能帮我解决这个问题?(stat_smooth没有做这项工作,因为它使我的情节几乎是直线)

这是我的 x 和 y 轴值(我不知道如何在此处插入表格)

x 轴值

x_value
86645
87018
987522
989433
989934
991055
995476
9987548
9987885
9988511
9988522
9991975
9992246
9992428
9993646
9993668
9994285
9994309
9994317
9994425
9994437
9994581
9994856
9994878
9995045
9995072
9995103
9995142
9995153
9995521
9996329
9996568
9997122
9997269
9997277
9997282
9998216
9999596
9999838
10001799
10004506
10007993
10008597
10009002
10009022
10009225
10009530
10009657
10010526
10012288
10012897
10012899
10012901
10014614
10014903
10015001
10015039
10015059
10015340
10015342
10016761
10018152
10020062
10024053
10024058
10024284
10024318
10025853
10026758
10028903
10029674
10029835
10030862
10031185
10031737
10033603
10035054
10035100
10036294
10036678
10036691
10036698
10036783
10037234
10037289
10037388
10039332
10039431
10042426
10042469
10042471
10043156
10043218
10043225
10045396
10045986
10046533
10046604
10047066
10047179
10047865
10048106
10048136
10048873
10049328
10049724
10049961
10049974
10050014
10050020
10050039
10050041
10050450
10050451
10050558
10050561
10051330
10051336
10052228

Y 轴值:

y_value
16.7
14.3
10.5
18.2
20.0
16.7
14.3
10.4
27.3
22.2
11.1
-18.2
-10.1
-13.3
-26.4
-13.3
-15.4
14.3
15.4
11.7
26.7
18.2
64.7
21.2
20.0
11.8
-17.9
25.0
14.2
20.0
18.2
12.5
12.5
10.5
11.1
12.5
14.3
-20.0
12.5
-20.0
16.7
13.3
18.2
20.0
30.0
20.0
11.8
-18.8
20.0
20.0
12.5
18.8
13.3
-15.4
18.2
18.9
28.6
20.0
12.5
16.1
15.4
10.5
13.3
29.7
23.1
18.2
14.3
12.5
12.5
16.7
11.1
20.0
18.2
18.2
13.2
13.3
11.8
15.4
14.3
23.8
18.2
33.3
18.2
-12.5
12.5
23.1
21.7
14.3
16.7
11.1
16.7
12.5
11.1
12.5
18.2
12.5
11.0
20.0
18.2
15.8
10.5
10.2
10.5
14.3
11.8
25.0
13.8
16.4
16.7
-18.2
18.2
16.7
18.2
18.2
11.8
12.5
14.3
17.9
10.5
4

1 回答 1

1

注意:在接下来的内容中,我将您的 x 和 y 数据组合成一个df包含列xy.

查看一个简单的散点图,您的数据似乎或多或少分为五个集群:

with(df,plot(x,y))

要查看 x 和 y 方向的分布,您需要一个二维核密度估计值,该估计值可在 package 中获得MASS。然后,您可以使用包将其绘制成 3 维(密度为zrgl

library(MASS)     # for kde2d(...)
library(rgl)      # for open3d(...) and surface3d(...)
dens <- kde2d(df$x,df$y)
zlim    <- range(dens$z)
palette <- rev(heat.colors(10))
col     <- palette[9*(dens$z-zlim[1])/diff(zlim) + 1] # assign colors to heights for each point
with(dens,open3d(scale=c(x=1/diff(range(x)),y=1/diff(range(y)),z=1/diff(range(z)))))
with(dens,surface3d(x,y,z, color=col))
title3d(xlab="X",ylab="Y")

于 2014-07-06T18:28:55.027 回答