0

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

我正在为我的公司寻找满足以下规范的软件库(开源或商业)。先说一点背景。

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

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

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

这是我正在寻找的:

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

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

4

4 回答 4

1

标记,

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

我将我的答案分为两部分:

  1. 如何为您的 Web 应用程序找到图表组件?
  2. 如何为最终用户构建 UI 以修改这些库创建的图表?

可以通过三种方式将图表功能添加到您的 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 小程序或 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、Kendo UI DataViz、JSCharts、Arcadia Charts、jQChart、EJSChart、emprisejs、techoctave

免费:FusionCharts Free (Flash)、Google Chart Tools、Yahoo UI components、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 应用程序选择图表组件,让我解决第二个问题:是否有一个组件附带客户端向导供最终用户设计图表?

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

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

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

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

希望我已经能够回答你的问题。

于 2013-04-25T08:48:55.347 回答
1

这听起来像是一个“构建与购买”的问题。我很想知道您是否研究过 Tableau、qlikview、jDashboard 或 LogiAnalytics 等综合商业智能工具?

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

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

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

于 2014-05-27T18:40:28.157 回答
0

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

  1. 您需要一个本质上多样化、易于配置、对用户极端修改具有鲁棒性并且即使在最坏的情况下也看起来不错的图表组件。(我在这里假设了很多项目,因为很明显用户会创建图表,因此它可能非常牵强。)

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

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

如果我的基本分析是正确的,那么以下是我在各自基础上的建议:

  1. 对于如此全面的需求,您将需要专门用于可视化的图表解决方案,并且是一个满足您图表需求的可视化组件。

    我看到的唯一满足您要求的组件是 FusionCharts。原因是 FusionCharts 旨在迎合企业客户的需求,在输入上具有高容错性,但看起来很吸引人。(我可以用例子详细说明,或者您可以查找网站 http://www.fusioncharts.com/。

  2. 可悲的是,没有这样的组件与如此强大的可视化前端天生配对。这主要是因为大多数图表解决方案提供商都迎合了用例涉及图表生成的消费者。

    您确实有Dundas Chart Builder - 恕我直言,它不是基于 Web 的和 jsCharts 图表编辑器- 其可视化前端不如您的需求全面,我不确定他们是否出售编辑器。

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

    Collabion 主要用于部署在 Microsoft 堆栈 (SharePoint) 上,但您的要求是 Java。恕我直言,如果您达到该长度,您可以运行 SharePoint 实例并传达该过程。(只是大声思考。)

于 2013-04-25T15:57:50.277 回答
0

的确,FusionchartXT 符合您的要求,但您也需要一个基于 Web 的 FusionchartXT 编辑器。它必须允许您的客户选择性地配置他们的图表属性、化妆品、日期集和趋势线,就像这样:http ://www.crossui.com/FCEditor/ 。

于 2014-05-15T04:31:02.463 回答