【问题标题】:R: Manipulating csv scatter data to plot a 3D surfaceR:操纵 csv 散点数据以绘制 3D 表面
【发布时间】:2013-08-20 18:09:35
【问题描述】:

我确定以前有人问过这个问题。如果你能找到一个好的链接,我很乐意删除这个问题,但我对谷歌没有任何运气。

我想绘制一些 3D 数据,搜索总是让我回到 R(欢迎使用伟大/简单的替代方案)。

我有一个如下所示的 csv 文件...

x    y    value
0    0    4.35
0    1    4.23
0    2    4.24
1    0    4.34
1    1    4.23
1    2    4.22
2    0    4.34
2    1    4.22
2    2    4.22

网格中的所有点都存在且唯一,因此我不需要任何插值。

我可以这样读...

data <- read.table("mydata.csv", header=T, sep=",")

我发现了许多 3d 绘图函数:persp、线框、scatterplot3d、rgl/persp3d、rgl/surface。但是没有运气理解他们需要的格式。

我可以这样输出...

svg("chart.svg", width=4, height=4)
#plot function call(args??)
dev.off()

将我的数据重新排列并绘制为表面/高度图并输出到 SVG(非嵌入式栅格)的最短方法是什么?

【问题讨论】:

    标签: r


    【解决方案1】:

    怎么样?

    my.data <- read.table(text= "x    y    value
    0    0    4.35
    0    1    4.23
    0    2    4.24
    1    0    4.34
    1    1    4.23
    1    2    4.22
    2    0    4.34
    2    1    4.22
    2    2    4.22", header = TRUE)
    
    
    library(lattice)
    wireframe(value ~ x + y, data = my.data, screen = list(z = 70, x = -50))
    

    【讨论】:

    • 谢谢!这很好用。加入积分容易吗?线框可以,但理想情况下我想要填充多边形。我的真实数据是 64x64 的规模。
    • 似乎功能 persp 与我想要的非常相似,但为此我相信我需要重新排列我的数据。例如,为 x/y 创建两个序列,并从我的 csv 中创建一个矩阵来存储每个 x/y 的高度值。
    • 我刚刚意识到您需要的是曲面图,而不是散点图。
    • @jozxyqk drape 参数到 wireframe 是否为您提供了可接受的“填充”?
    • @CarlWitthoft 更好
    猜你喜欢
    • 2014-09-03
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多