基于Web的图表设计器

时间:2013-04-22 02:22:30

标签: visualization

编辑:我注意到有40个观看次数,但没有回复。我问过多了吗?有没有人对我正在寻找的部分内容有任何想法或要点?

我正在寻找符合以下规格的公司软件库(开源或商业)。首先是一些背景知识。

我的公司提供基于云的软件,除其他外,它允许用户创建类似于SharePoint列表的临时数据库表,并在那里存储任何类型的数据。为了论证,假设可以通过常规SQL查询,对表或视图访问数据。

我们希望通过创建自己的图表,让用户能够可视化存储在这些临时表中的数据。我们的最终用户将不具备任何技术能力,并且不需要编码就可以实现这一目标。

我们的软件在后端使用java。客户端通过浏览器访问软件,通常不需要插件或附件。

以下是我要找的内容:

  • 可以创建范围非常广泛的图表(饼图,条形图等)的图书馆,不仅仅是1或2种图表,还有相当复杂的图表版本。
  • 图表是在后端(在java中)还是在前端(使用javascript)创建的并不重要。
  • 最终用户应该能够使用向导来设计图表。这不仅包括什么类型的图表和各种图表选项(标签,颜色等),还包括将使用哪些数据字段来构建图表的每个部分。例如,最终用户可能会选择一个饼图,然后选择一个特定的数据源(例如,Store Sales),并且可以从数据源中选择将用作饼图维度(切片)和饼图的列。测量(每个切片的大小)。这并不一定要求库可以访问数据源,因为数据源中的字段和每个数据类型的数据类型都可以发送到库(无论是java还是javascript)。
  • 最后,假设数据存储为常规表或可以作为SQL视图访问,一旦选择了字段并定义了各种聚合来创建图表,库就应该编写实际的SQL代码。查询基础数据所需的。不能指望最终用户自己编写SQL代码。

我相信有些SharePoint附加组件会编写必要的查询,以便从SharePoint列表中提取数据来创建图表。类似的东西,但不是基于SharePoint的。

4 个答案:

答案 0 :(得分:1)

标记,

我会尽我所知来回答这个问题(披露:我是FusionCharts的联合创始人兼首席执行官 - 我们制作JavaScript图表组件)。

我将答案分为两部分:

  1. 如何为您的网络应用程序查找图表组件?
  2. 如何为最终用户构建UI以修改这些库创建的图表?
  3. 有三种方法可以为您的Web应用程序添加图表功能。

    使用服务器端图表库

    首先使用特定于平台的图表库,通过其API接受服务器上的数据,创建图像以表示图表,然后流式传输这些图像。此类组件的示例包括Telerik(.NET,付费),Infragistics(.NET,付费),ComponentArt(.NET,付费),ChartFX(Java,.NET,付费),Steema(.NET,付费),pChart(PHP) ,免费),jPGraph,以及其中的一大堆。

    使用此类组件的优点是:

    • 成熟的图书馆提供各种各样的图表类型
    • 由于图表是以图片形式生成的,因此它们无处不在,包括移动设备
    • 外观&感觉总是保持不变,再次由图表呈现为图像
    • 如果在整个应用程序中每个用户只提供一个或两个图表,则与客户端库相比使用的带宽较小,其大小范围为50-500KB,但之后会缓存

    缺点是:

    • 在将图表生成为图像时,在服务器端使用了大量资源。对于具有许多并发用户的应用程序更是如此
    • 图表提供的互动和动画非常有限,因为你只能用图像做很多事情
    • 它们是特定于技术的。因此,如果您使用ASP.NET库,如果/当您迁移到Java时,您将不得不切换到不同的库,因此外观,感觉和功能集会有所不同。

    使用托管图表API

    第二个选项是使用托管图表库,它通过查询字符串/ REST API接收数据并将图表图像返回给您的应用程序。示例是旧的Google Charting API。

    这样做的好处是:

    • 您不需要托管图表库,因此所有维护和升级问题都由他们管理
    • 当您更改技术堆栈时,图表仍由相同的服务提供,因此外观和感觉是一样的

    缺点:

    • 此类服务不提供各种图表类型
    • 机密数据需要通过服务器外的HTTP传输到此类提供商
    • 可通过查询字符串发送的数据量限制
    • 同样,图表不能是交互式的,因为它们是图像

    使用JavaScript,CSS,Flash,Silverlight或Java小程序进行客户端图表

    第三个也是最后一个选项是使用用JavaScript / HTML5,Pure CSS,Flash,Java applet或Microsoft Silverlight编写的客户端图表库。考虑到iOS设备不支持和专有插件这一事实,基于Flash,Java和Silverlight的插件无法在iPad和iPhone上运行。所以你可以放心地忽略它们。纯CSS组件非常轻,可用于非常基本的可视化。

    这最终将我们带到了基于JavaScript / HTML5的图表组件。有一大堆JavaScript图表库,包括免费和付费。我在下面列出了其中一些:

    付费:FusionCharts Suite XT(JavaScript),HighCharts,amcharts,AnyChart,Jqplot,ZingCharts,Wijmo,TeeChart,Sencha Touch Charts,RGpraph,Ken​​do UI DataViz,JSCharts,Arcadia Charts,jQChart,EJSChart,emprisejs,techoctave

    免费:FusionCharts Free(Flash),Google Chart Tools,Yahoo UI组件,Flot,Milkchart,Moochart,protovis,graphael,elycharts,smootiecharts,dhtmlxchart,grafico,canvasjs,dygraphs,thejit,awesomechartjs,jchartFX。基于d3.js的更多免费组件用于数据可视化:xcharts,nvd3,rickshaw,cubism.js,Dc.js,xkcd,graphene

    现在,考虑到可用组件的数量,在缩小图表组件范围时需要问自己的问题应包括:

    • 您现在和将来需要哪些图表类型?如果您需要非常基本的图表,如列,饼图等,这些库中的大多数都符合要求。但如果您需要像Pareto或Funnel这样的稍微高级的图表,大多数组件都不提供此类图表。
    • 在最大数量的设备和旧浏览器(如IE6)上呈现图表有多重要?许多开源库只使用SVG进行渲染,因此不支持IE6,7,8(世界上仍有6%的人仍在使用)。
    • 在演示期间,您是否可以使用产品中作为USP实现数据可视化的部分?如果是的话,外观和外观有多重要。感觉图表组件给你?
    • 您是否希望花费大量时间调整图表以获取基本功能?例如,许多开源库在编写其他代码时启用了工具提示,或者如果您在图表上有25个数据点,则需要由您处理x轴标签重叠。或者,您是否希望开箱即用这些功能,以便您可以专注于您的应用程序和业务逻辑?
    • 能够自定义图表的每个功能(包括化妆品)对您有多重要?例如,您是否需要能够以3D形式呈现图表,自定义数字的格式,控制渐变等等。
    • 您是否想要一个具有详尽文档和现实商业演示的组件,以便您可以轻松入门,或者您是否可以通过最少的文档和实验学习,这可能需要很长时间?
    • 如果某些内容没有按预期工作,或者您是否可以在公共论坛上发帖而没有SLA进行回复/修复,那么您是否获得个性化支持很重要?

    希望这些信息可以帮助您为Web应用程序选择图表组件,让我解决第二个问题:是否有一个组件随客户端向导一起提供给最终用户设计图表?

    对于客户端图表库,简短的回答是NO。因为它将客户端库与特定的服务器端技术联系起来以实现数据持久性,其次没有多少用户需要它。

    某些服务器端库(Dundas曾经拥有此功能)确实提供了此功能,但并非所有图表功能都可以在客户端自定义。

    话虽如此,许多开发人员已经创建了这样的向导供非技术用户使用。例如,在FusionCharts,我们创建了名为Collabion的SharePoint向导(参见www.collabion.com),以及名为oomfo(www.oomfo.com)的PowerPoint。虽然这些不是开源的,但如果您发现它们相关,我们很乐意分享这些代码。

    另一种选择是使用开源BI组件(如Pentaho,JasperSoft等),它们具有内置的图表组件,并为最终用户提供向导。但是,它们可能需要每个用户拥有大量的服务器资源,并且需要花时间进行安装和维护。

    希望我能回答你的问题。

答案 1 :(得分:1)

这听起来像是"构建与购买"题。我有兴趣知道您是否已经研究过Tableau,qlikview,jDashboard或LogiAnalytics等全面的商业智能工具?

购买预先构建的解决方案当然可以归结为限制 - 您的供应商可以与您合作吗?或者允许您构建最小的附加组件来解决它们?这可能会实现您的许多应用程序目标,但前期许可成本会更高。

购买可视化库或下载开源库将提供构建您所描述的应用程序所需的众多材料之一。这样可以降低许可成本,但需要围绕它来满足其余的需求。

您需要做出的决定是,您是否具备处理多个库和处理自定义编码所需的耐心和能力,或者您是否愿意为满足大多数但不一定满足所有要求的完整解决方案付费。

答案 2 :(得分:0)

从我的角度来看,你的要求似乎是双重的。我会分享我的观点,但我不确定它是否会对你有帮助。

  1. 您需要一个图表组件,其性质多样,易于配置,对于用户的极端修补而言非常强大,即使在最坏的情况下也看起来很好。 (我在这里假设了许多项目,因为很明显用户会创建图表,因此它可能非常牵强。)

  2. 可视编辑器(最好是向导式),可用于从现有数据源创建和配置此类图表的各个方面。

  3. 由于您的应用程序用于创建和存储自定义数据源(据我所知),因此使用BI工具作为叠加层的意义不大,因为数据的性质太灵活,无法符合任何源标准。

  4. 如果我的基本分析是正确的,那么以下是我在相应基础上的建议:

    1. 对于这样一个全面的要求,您需要专门的图表解决方案 在可视化中,是一个可视化组件,可以满足您的图表需求。

      我看到的唯一符合您要求的组件是 FusionCharts。原因是FusionCharts的设计目的 满足企业客户对输入和输入的高容错能力 但看起来很吸引人。 (我可以用例子说明,或者你可以查看网站 http://www.fusioncharts.com/.

    2. 可悲的是,没有这样的组件与这样的能力本身配对 可视化前端。这主要是因为大多数图表解决方案提供商都满足 对于使用案例涉及图表生成的消费者而言。

      你有Dundas Chart Builder - 恕我直言不是基于网络的 jsCharts chart editor - 其可视化前端不如全面 你的需求,我不确定他们是否出售编辑。

      话虽如此,FusionCharts还有另一款名为Collabion的产品。 该产品使用FusionCharts呈现图表并连接SharePoint数据源。 有趣的部分是它拥有的可视化图表构建器。它可以让你完全 定制FusionCharts的外观和功能以及配置 数据源。访问http://www.collabion.com/,您可以查看截图。

      Collabion主要用于在MicroSoft堆栈(SharePoint)上部署,但是 你的要求是关于Java的。恕我直言,如果你去那个长度,你可以运行一个实例 SharePoint并传达流程。 (只是大声思考。)

答案 3 :(得分:0)

确实,FusionchartXT符合您的要求,但您也需要基于网络的FusionchartXT编辑器。它必须允许您的客户可选地配置他们的图表属性,化妆品,日期集和趋势线,如下所示:http://www.crossui.com/FCEditor/

相关问题