3维(X,Y和Z)图使用D3.js

我在D3.js上search一个有3个维度(X,Y和Z)的图 。 请让我知道,如果有任何数据可视化网站 ,我可以find这样的graphics,或者有一个关于d3js.org如果我错过了某种方式。

VividD和Lars Kotthoff链接的三维散点图可能就是你所要求的最好的例子,但是我会做出相反的暗示,也许你会问错误的问题。

试图模拟平面屏幕上的三个空间维度总是不完善的,并且使得难以读取数据。 但是,在D3中绘制三个不同的数据维度非常容易。 对于两个数据variables,使用水平和垂直布局,然后使用第三个variables的大小,形状,颜色或阴影。

如果所有的三个数据variables最好用连续数字表示,那么最好的方法是使用气泡散点图,其中三个显示维度是水平位置,垂直位置和气泡大小。

下面是一个例子,它还使用在线交互组件添加通过运动显示的第四个维度:
泡沫散点图 泡沫散点图 – 点击原始

你说你的三个维度是客户产品内容 。 我不知道什么样的价值“内容”(数字或类别),但我很确定“客户”和“产品”是类别。

下面是一个例子,其中两个分类维度用于布置表格,然后表格的每个单元格包含一个由第三个数字维度大小的圆圈。 如果您的第三个variables是一个类别,您可以使用一个形状来指示“客户”和“产品”的每个配对使用哪一种“内容”types(如果有的话):
泡沫矩阵
泡沫matrix – 点击原始

这里是另外一个,第三个维度是用颜色而不是按大小来显示的。 颜色代表连续variables,但您可以轻松select一组高对比度颜色来表示类别:
颜色矩阵 彩色matrix – 点击原始

当然,一个普通的堆叠式条形图是另一种显示两个类别和数量的方法:
堆积的条形图 堆积条形图 – 点击原始

你不必停在三个数据variables。 如果两个数据variables都是您不介意分类的类别或数字,则可以使用“小数倍”方法绘制四个variables,您可以在其中创build表示分类variables的表格,然后重复其他两个variables在每个表格单元格内。

喜欢这个:
散点图矩阵 散点图matrix – 点击查看原图

或者这个(星期和星期是数据的两个维度,类别/数量是另外两个维度):
饼图小倍数
饼图小倍数 – 点击原始

我希望能给你很多想法

一种类似于你所寻求的是一个例子:

三维散点图

在这里输入图像说明

请注意,此示例使用了X3DOM ,这是一个相当新的尝试,用于标准化HTML中的3D渲染,而不是所有浏览器均支持。

在X3DOM中使用D3.js的一些附加testing示例:

X3DOM在callbacktesting中

D3 X3DOM事件testing

也searchD3 Google组上的X3DOM。

另一个有趣的方法是使用D3.js和Three.js,如下所示:

用three.js和d3.js显示3D轨迹

一般来说,D3.js更倾向于数据可视化,而不是科学可视化,这意味着它没有广泛的支持显示3D空间(除了显示地理三维数据,D3.js支持的很好,但你不需要它)。

例如(这个例子与你的例子没有直接关系,只是为了解释):D3提供了树的二维绘制algorithm,但没有提供任何3D树的放置和在2D屏幕上渲染这样的放置。

如果您不仅限于D3.js,也许您可​​以通过其他库来更轻松,更快速地实现相同的目标,这些库专门用于类似于您的目的。 例如,您可以使用Pre3D 。 看看这个例子 。 Pre3D不使用X3DOM,只是在2Dcanvas上进行简单的HTML渲染。 我认为它的3Dgraphics的animation(旋转)比第一个D3 / X3DOM的例子更平滑。

希望这会帮助你。

我能find的最好的例子(其中都非常简单)是:

Highcharts (3d散点图)

http://www.highcharts.com/demo/3d-scatter-draggable

Vis.js (各种3d选项,如条和点)

http://visjs.org/examples/graph3d/playground/index.html

只需提供x,y和z坐标,设置configuration如何你喜欢和你在笑。

它看起来像一个更正确地说“3D”出来的新例子。 http://bl.ocks.org/supereggbert/aff58196188816576af0

这是我做的改编:

http://bl.ocks.org/adrianturcato/cf665b7cca9f6057691a