Scatter Plot 3D for Web Application
-
05-07-2019 - |
题
我正在为Web应用程序寻找Scatter Plot 3D组件。现在我正在使用 JMathPlot (在Java Applet中)生成这样的内容:
alt text http://jmathtools.berlios.de /lib/exe/fetch.php?media=scatterplot3d.png
JMathPlot很好,但缺少一些必需的功能(我特别感兴趣的是为绘图点提供工具提示)。
还有其他选择吗?任何交互式网络技术(javascript,java applet,flash,silverlight)都可以。当鼠标悬停在一个点上时,用户应该能够旋转/缩放绘图并查看工具提示。
解决方案
Silverlight有几个简单的3D引擎(例如, http://www.markdawson.org/ Kit3D / 或 http://www.codeplex.com/aXelerateSL3D )和flash( 在此列出)鉴于您了解ActionScript,VB.NET或C#,您自己应该很容易创建这样的图表。
Flash 10版本甚至还有一个内置于简单的“3d引擎”中。 :
Flash Player 10允许xyz翻译 和xyz旋转的2D表面 x,y和z轴。 Flash Player 10也是 显示透视和相机 您设置的角度可以创建类似3D的角度 的效果。
这可能是您自己快速构建它所需的全部内容。
由于JMathPlot是开源的,因此根据您的需要采用它可能是另一种选择。
其他提示
您可能还想查看处理。他们可能没有现成的组件,但网上有成千上万个好的源代码示例。
James Black的建议使用canvas标签,是一个非常好的,但它需要一个非IE更新浏览器。或者是吗?感谢谷歌,您将能够使用IE中的Chrome渲染器。通过这种方式,您可以使用动态图表定位支持HTML5的浏览器(Gecko,Webkit和Presto),并要求IE用户在其出现后安装Google的Add。由于非IE浏览器中的本机支持,以及Google的 Explore Canvas <, canvas
可跨浏览器工作/ a> IE的插件。 SVG
支持也可通过浏览器谢谢 一些插件 for IE 。请注意,如果您需要适用于IE的Chrome渲染器,则不需要任何其他内容。
你可以使用 canvas
或 svg
来做图表,已经有了一些图书馆这样做。两种技术允许您创建动态图,但它们有一些不同的方法。
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
我认为我会选择 SVG
来做你想要的事情,因为添加动态标签会很简单,但要创建一个真正灵活的将很难伪三维散点图的API。
svg
的问题在于,通过尝试制作一种非常灵活的语言,你会遇到一个非常复杂的语言。在这里,您可以看到在两个库中编写的代码执行相同的操作。
SVG
var rect = document.createElementNS(SVG_NS, "rect");
rect.setAttribute("x", "5");
rect.setAttribute("y", "5");
rect.setAttribute("width", "20");
rect.setAttribute("height", "20");
rect.setAttribute("fill", "red");
parent.appendChild(rect);
var poly = document.createElementNS(SVG_NS, "polygon");
poly.setAttribute("fill", "green");
poly.setAttribute("points", "-40,40 0,-40, 40,40");
parent.appendChild(poly);
帆布
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();
}
您可以看一下使用canvas标签执行此操作,对于除IE之外的任何更新的浏览器,您可以获得工具提示,因为它具有与任何其他html标记一样的事件。
你可以使用excanvas在IE上获得大部分功能,我只是没有运气绘图文字。
它不是一个库,但它可以让你使用javascript在html中工作。
canvasXpress的三维散点图提供了JavaScript和Canvas替代方案。 http://canvasxpress.org/scatter3d.html