【发布时间】:2017-09-05 22:38:36
【问题描述】:
环境
R 3.3.2
当我有 mini data 1 之类的数据时:
rdn<-c(0.8,1.8,2.8)
tdn<-c(1,2,3,4,5,6,7,8,9)
idn<-matrix(c(0.3, 0.3, 0.3, 0.2, 0.2, 0.4, 0.1, 0.1, 0.5, 0, 0.2, 0.5, 0, 0.3, 0.6, 0, 0.4, 0.6, 0, 0.4, 0.6, 0, 0.5, 0.7, 0, 0.5, 0.7), nrow=9, ncol=3, byrow=T)
矩阵看起来像(3*9 = 27 个数据元素):
0.3, 0.3, 0.3,
0.2, 0.2, 0.4,
0.1, 0.1, 0.5,
0, 0.2, 0.5,
0, 0.3, 0.6,
0, 0.4, 0.6,
0, 0.4, 0.6,
0, 0.5, 0.7,
0, 0.5, 0.7
然后我可以得到一个带有参数 x,y,z 的填充轮廓。 x 是 tdn,y 是 rdn,z 是矩阵。 I already get this several month ago using filled.contour。 rdn 和 tdn 仅用作 x、y 的标签。矩阵似乎是轮廓线。而且矩阵数据不是rdn和tdn的函数。
我目前的问题是:
如果我有三维数据迷你数据2
r1dn<-c(0.8,1.8,2.8)
r2dn<-c(0.8,1.8,2.8)
tdn<-c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9)
和(3*3*9 = 81 个数据元素):
0.8 1.8 2.8
0.8 1.8 2.8 0.8 1.8 2.8 0.8 1.8 2.8
--------------- 81 ---- elements ----------------------
0.3, 0.3, 0.3, 0.3, 0.3, 0.5, 0.3, 0.3, 0.3,
0.2, 0.2, 0.4, 0.2, 0.4, 0.4, 0.4, 0.2, 0.5,
0.1, 0.1, 0.5, 0.2, 0.3, 0.5, 0.4, 0.4, 0.5,
0, 0.2, 0.5, 0.2, 0.2, 0.6, 0.4, 0.5, 0.6,
0, 0.3, 0.6, 0.3, 0.3, 0.6, 0.5, 0.5, 0.7,
0, 0.4, 0.6, 0.2, 0.5, 0.7, 0.5, 0.6, 0.7,
0, 0.4, 0.6, 0, 0.5, 0.6, 0.5, 0.6, 0.9,
0, 0.5, 0.7, 0, 0.6, 0.8, 0.5, 0.7, 0.8,
0, 0.5, 0.7 0, 0.6, 0.8 0.5, 0.8, 0.9
我用谷歌搜索了许多表面和轮廓代码,但我仍然没有找到一些三维数据的代码。如何在 R 中做到这一点?比如说,x 是 r1dn,y 是 r2dn,z 是 tdn,那么三维数据(我的意思是 81 个元素的数据)呢? ggplot 是否可以绘制三维填充轮廓或曲面图?还是其他替代解决方案?
我所期望的只是一个颜色变化平滑且没有网格的 3d 图。
看起来像:
接下来的三个数字没有网格
那些应该是 3d 填充轮廓或 3d 曲面图。
感谢您的宝贵时间。
编辑
展开所有数据迷你数据2后看起来像四个维度:
r1dn r2dn tdn fdn
x, y, z, f
0.8 0.8 0.1 0.3
0.8 0.8 0.2 0.2
0.8 0.8 0.3 0.1
0.8 0.8 0.4 0
0.8 0.8 0.5 0
0.8 0.8 0.6 0
0.8 0.8 0.7 0
0.8 0.8 0.8 0
0.8 0.8 0.9 0
0.8 1.8 0.1 0.3
0.8 1.8 0.2 0.2
0.8 1.8 0.3 0.1
0.8 1.8 0.4 0.2
0.8 1.8 0.5 0.3
0.8 1.8 0.6 0.4
0.8 1.8 0.7 0.4
0.8 1.8 0.8 0.5
0.8 1.8 0.9 0.5
0.8 2.8 0.1 0.3
0.8 2.8 0.2 0.4
0.8 2.8 0.3 0.5
0.8 2.8 0.4 0.5
0.8 2.8 0.5 0.6
0.8 2.8 0.6 0.6
0.8 2.8 0.7 0.6
0.8 2.8 0.8 0.7
0.8 2.8 0.9 0.7
1.8 0.8 0.1 0.3
1.8 0.8 0.2 0.2
1.8 0.8 0.3 0.2
1.8 0.8 0.4 0.2
1.8 0.8 0.5 0.3
1.8 0.8 0.6 0.2
1.8 0.8 0.7 0
1.8 0.8 0.8 0
1.8 0.8 0.9 0
1.8 1.8 0.1 0.3
1.8 1.8 0.2 0.4
1.8 1.8 0.3 0.3
1.8 1.8 0.4 0.2
1.8 1.8 0.5 0.3
1.8 1.8 0.6 0.5
1.8 1.8 0.7 0.5
1.8 1.8 0.8 0.6
1.8 1.8 0.9 0.6
1.8 2.8 0.1 0.5
1.8 2.8 0.2 0.4
1.8 2.8 0.3 0.5
1.8 2.8 0.4 0.6
1.8 2.8 0.5 0.6
1.8 2.8 0.6 0.7
1.8 2.8 0.7 0.6
1.8 2.8 0.8 0.8
1.8 2.8 0.9 0.8
2.8 0.8 0.1 0.3
2.8 0.8 0.2 0.4
2.8 0.8 0.3 0.4
2.8 0.8 0.4 0.4
2.8 0.8 0.5 0.5
2.8 0.8 0.6 0.5
2.8 0.8 0.7 0.5
2.8 0.8 0.8 0.5
2.8 0.8 0.9 0.5
2.8 1.8 0.1 0.3
2.8 1.8 0.2 0.2
2.8 1.8 0.3 0.4
2.8 1.8 0.4 0.5
2.8 1.8 0.5 0.5
2.8 1.8 0.6 0.6
2.8 1.8 0.7 0.6
2.8 1.8 0.8 0.7
2.8 1.8 0.9 0.8
2.8 2.8 0.1 0.3
2.8 2.8 0.2 0.5
2.8 2.8 0.3 0.5
2.8 2.8 0.4 0.6
2.8 2.8 0.5 0.7
2.8 2.8 0.6 0.7
2.8 2.8 0.7 0.9
2.8 2.8 0.8 0.8
2.8 2.8 0.9 0.9
嗯,数据mini data 1也可以展开成3维,可以在2d plot中通过filled.contour来绘制,所以应该有一种方法可以用3dfilled.contour来绘制迷你数据2对吗?
【问题讨论】:
标签: r ggplot2 data-visualization contour surface