结合3D / 2D图

时间:2009-12-11 01:18:48

标签: r 3d statistics plot

我正在尝试制作一个看起来像http://www.gradient-da.com/img/temperature%20surface%20plot%20470x406.JPG http://www.gradient-da.com/img/temperature%20surface%20plot%20470x406.JPG的可视化。

我们的想法是让3D表面图重叠表面的2d表示。

我可以构建任意曲面/多边形形状(如http://addictedtor.free.fr/graphiques/graphcode.php?graph=135中所示),我可以制作相应的2D曲线。我似乎无法弄清楚的是将它们组合在一起的方式(如上面jpg中所示)。

我尝试使用Google搜索答案,但我无法在R中找到类似的内容。 任何帮助将不胜感激!

编辑:2D部分不是2D投影。我选择这张特定图片来说明这一点。例如

  1. 这里2D部分是电路的图像,3D部分是温度。
  2. 在2D中,您可以拥有城市地图和3D流量
  3. 等...
  4. 最佳,

    布鲁诺

5 个答案:

答案 0 :(得分:2)

我会给出理论上的想法,

在同一3D图中,选择垂直于3D表面的平面(正好在3D表面下方)并将所有值投影到该平面。而不是2D& 3D绘图,您将只使用3D绘图,也可以绘制表面。

HTH

答案 1 :(得分:0)

看起来2D绘图是微电子电路的布局,虽然有一些细节被跳过,3D图可能是同一电路的热图。

我对R的功能了解不多,但我想用相同的数据集分别用R表示两个图来表示布局信息(但有和没有热数据)然后将它们组合起来会更容易使用图形处理程序。

答案 2 :(得分:0)

R中没有帮助,但你可以在ROOT中做类似的事情,如图所示:

histogram plotted with SURF3 option

取自THistPainter class documentation

代码是开源的,如果需要重新实现,可以进行检查。

答案 3 :(得分:0)

也许你应该尝试用2d图片制作一个opengl纹理并将其映射到3d多边形上以包含在你的场景图中?

如果您希望特别使用R,请不要真正理解,所以也许在opengl中潜水对你来说太低了。如果你准备好了,你可以重用一个简单的java库来简化3d表面的绘制:http://code.google.com/p/jzy3d

希望有所帮助, 马丁

答案 4 :(得分:0)

您正在寻找的是一个纹理贴图 - 如果它没有在R图形包中提供,您可以“手动”完成。下面的建议可能不是快速或方便(甚至是有帮助的,因为我对R不是很熟悉),但它实际上可能有效......

由于您知道可以使用指定的颜色绘制3D曲面图,因此可以尝试使用图像的颜色绘制平面3D曲面。

如果R还缺少从图像格式中提取数据的方法,则有一种称为PPM(代表便携式PixMap)的图像格式,其中一种变体基本上是以空格分隔的十进制数。将图像转换为此格式(使用Photoshop,或者某些专用图像转换程序)后,输入R应该相对容易。