3d 三维散点图在Web应用中的应用

3d 三维散点图在Web应用中的应用,3d,scatter-plot,3d,Scatter Plot,我正在寻找一个散点图三维组件的Web应用程序。现在我正在使用(在Java小程序中)生成如下内容: JMathPlot很好,但缺少一些必需的功能(我对打印点的工具提示特别感兴趣) 还有其他选择吗?任何交互式web技术(javascript、javaapplet、flash、silverlight)都可以。当鼠标悬停在一个点上时,用户应该能够旋转/缩放绘图并查看工具提示。silverlight(例如or)和flash()都有几个简单的3D引擎,如果您知道ActionScript、VB.NET或C,

我正在寻找一个散点图三维组件的Web应用程序。现在我正在使用(在Java小程序中)生成如下内容:

JMathPlot很好,但缺少一些必需的功能(我对打印点的工具提示特别感兴趣)


还有其他选择吗?任何交互式web技术(javascript、javaapplet、flash、silverlight)都可以。当鼠标悬停在一个点上时,用户应该能够旋转/缩放绘图并查看工具提示。

silverlight(例如or)和flash()都有几个简单的3D引擎,如果您知道ActionScript、VB.NET或C,那么您自己创建这样的图表应该很容易

flash版本10甚至有一个:

Flash Player 10允许xyz转换 和上二维曲面的xyz旋转 x、 y轴、y轴和z轴。Flash播放器10也是如此 显示透视图和摄影机 设置为创建类似3D的角度 效果

这可能就是您自己快速构建它所需要的全部


因为JMathPlot是开源的,所以根据您的需要采用它可能是另一种选择。

您可能还想研究一下。它们可能没有现成的组件,但在web上有数千个好的源代码示例。

您可以使用canvas标记来执行此操作,对于任何更新的浏览器(IE除外),您都可以获得工具提示,因为它与任何其他html标记一样具有事件

你可以使用excanvas在IE上获得大部分功能,我只是没有运气画文本

它不是一个库,但它将为您提供仅在html中使用javascript的功能。

使用canvas标记是一个非常好的功能,但它需要一个未经IE更新的浏览器。还是这样?多亏了谷歌。通过这种方式,你可以用你的动态图表来定位支持HTML5的浏览器(Gecko、Webkit和Presto),并要求IE用户在谷歌的附加组件发布后安装它
canvas
可以跨浏览器工作,这要感谢非IE的所有内容的本机支持,以及Google的IE插件。
SVG
支持也可以跨浏览器使用。请注意,如果您需要IE的Chrome渲染器,则不需要其他任何东西

你也可以,而且。这两种技术,但它们有一些不同的方法

SVG canvas ------------------------------------------------------------------------------- Has scene DOM (SVG DOM, though) Single HTML element, rendering script-driven Deals in shapes Deals in pixels Somewhat hard to mix with HTML (not XHTML) Behaves like an image in both Event handling easy Event handling hard 帆布

with (ctx) {
  fillStyle = "red";
  fillRect(5, 5, 20, 20);
}

with (ctx) {
  fillStyle = "green";
  beginPath();
  moveTo(-40, 40);
  moveTo(0, -40);
  moveTo(40, 40);
  closePath();
  fill();
}

FlashAndMath有一些有趣的类库:


canvasXpress的3d散点图提供了JavaScript和画布的替代方案

我刚才回答了一个类似的问题:嗨,我也在寻找3D绘图。我正在尝试理解JMATH绘图工具。我在如何设置X、Y和Z轴的范围(比例)方面有一些问题。你能发布上面图片的代码吗?我可以在我的代码中模仿它…谢谢,我试图在Java小程序中使用JMathPlot,但由于某种原因我不知道失败了。你能给我一个你使用的代码样本吗?
with (ctx) {
  fillStyle = "red";
  fillRect(5, 5, 20, 20);
}

with (ctx) {
  fillStyle = "green";
  beginPath();
  moveTo(-40, 40);
  moveTo(0, -40);
  moveTo(40, 40);
  closePath();
  fill();
}