ASP.NET 的图表控件

Posted

技术标签:

【中文标题】ASP.NET 的图表控件【英文标题】:Chart controls for ASP.NET 【发布时间】:2009-12-22 14:02:45 【问题描述】:

我主要关注人们对在 ASP.NET 应用程序(Web 表单或 MVC)中使用图表控件的看法和经验,但也包括在任何类型的项目中。

我目前正在做我的研究,我有一个相当大的控制列表来评估。我的清单包括(不分先后):

ASP.NET 控件:

DevExpress XtraCharts (http://demos.devexpress.com/XtraChartsDemos/) .NET 的 Dundas 图表 (http://www.dundas.com/) Telerik RadChart 用于 ASP.NET AJAX (http://www.telerik.com/) ComponentArt 图表和可视化 对于 ASP.NET (http://www.componentart.com/) 基础设施网络图表 (http://www.infragistics.com/dotnet/netadvantage/aspnet.aspx#Overview) .net 图表 (http://www.dotnetcharting.com/) .Net Framework 的图表控件 (微软的)(http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx)

Flash 控件:

FusionCharts v3 (http://www.fusioncharts.com/) XML/SWF 图表 (http://www.maani.us/xml_charts/index.php) amCharts (http://www.amcharts.com/) AnyChart (http://www.anychart.com/home/)

javascript

弗洛特 (http://code.google.com/p/flot/) 弗洛特 (http://solutoire.com/flotr/) jqPlot (http://www.jqplot.com/index.php)

(如果我错过了一些值得与上述内容进行比较的内容,请告诉我。)

我正在寻找的是对使用上述任何一种方法的意见,因此我可以根据我在此处阅读的内容形成自己的观点并帮助其他人做同样的事情。

我不在乎哪个更好。我关心的是为什么有人喜欢上述之一,以及这些控件提供了什么作为一个明显的优势。我对开发人员的意见很感兴趣,我想找出使用​​上述任何控件难以做到的事情以及容易实现的事情。 AJAX 兼容性(内置在控件中,但也可以手动)、ASP.NET 兼容性、输入功能、数据绑定选项、性能、需要编写多少代码才能创建图表,这些都是我会做的事情想了解一下。

我已经针对相关问题对 *** 进行了研究,但在做出负责任的决定时,我不想阅读详细程度的任何内容。

【问题讨论】:

我认为如果您让我们知道您在图表控件中查找的内容会有所帮助。是否有您需要的特定样式或样式集?您是否受限于特定技术?您的问题太宽泛,无法得到任何具体答案。 你忘记了谷歌图表:code.google.com/apis/chart 很容易实现。 我同意 Jeremy 的观点,你应该知道自己需要什么。您是否尝试过所有这些或只是一个示例? @JeremyMcGee 感谢您的评论。这个问题是故意广泛的,因为我想听听人们对上述控制的体验。我知道我在寻找什么,并且我可能会使用不止一种上述控件(即一个 ASP.NET 和一个 Flash) 我不想发生什么来做出我的选择,然后与它们斗争,因为它们不提供良好的数据绑定选项,例如因为它们在 AJAX 等方面表现不佳。这种知识只能来自使用过它们并看到它们的优缺点的人。 我是为 .NET (nevron.com) 创建 Nevron Chart 的团队的一员,建议您对其进行测试 - 它具有出色的 ASP.NET AJAX 支持,支持 2D 和 3D 图表 (在使用 OpenGL 的真实 3D 中)以及许多导出格式 - SVG、Flash(带动画)、PDF、PNG、JPEG 等。适用于 ASP.NET、MVC、s-s-rS 和 SharePoint 服务器端环境。 【参考方案1】:

我在 Google 图表和 .Net 图表控件 (formerly Dundas Chart 5.5) 方面做了一些工作。我对您列出的其他产品没有意见。

当时(一年前)还没有适用于 Google Charts 的 .Net 包装框架(至少我没有找到),虽然 Google Charts Api 相对简单,但也非常有限。我发现组成图表请求的结果代码本质上是丑陋的,而且不太易于维护(我知道,这不一定是 API 的错 - 但它需要更大的投资才能做得更好)。 Here are some of the resulting charts。例如,我无法找到将网格与刻度线对齐的方法。第三张图表上的 30mph 线似乎是随机放置的。如果您需要细粒度的控制,Google Charts 不是您的选择。

另一方面,.Net 图表控件为您提供了很多控制权。今年早些时候,我制作了一个原型,目标是创建与一家设计公司整理的印刷出版物中的图表相匹配的图表。起初我认为这需要妥协,但事实证明图表控件能够胜任这项工作。 Here is the result(单击第二个选项卡)。我发现以这种方式使用范围图的能力,并且可以控制垂直线标签的位置在特殊值上对于免费工具来说非常独特。此外,运行 MSDN 论坛的 Alex Gorev 在I ran into an issue 时证明非常有帮助(尽管他最终无法解决)。

s-s-rS 不是控件,而是生成图表并将其发布到网络的另一种选择。我已经使用Web服务接口发布a report that contains a chart。对于非常大的集合,这可能是一个更好的选择。

2014 年更新:上面的 cmets 用于上一代(过时的)Google 图表 API。新 API 可能解决了许多限制,因此您应该检查一下。

【讨论】:

【参考方案2】:

SimpleChart 是一个简单易用的组件。我用过 Fusion Charts,为了简单和良好的图表,我也会推荐它。

【讨论】:

【参考方案3】:

我选择了 Microsoft Chart 控件,称为标记答案,而不是 here:Charts for ASP.NET

【讨论】:

【参考方案4】:

到目前为止,我使用过的最好的图表是 FusionCharts。它可以与任何编程语言一起使用,因为它提供了良好的文档。免费版就够用了。

【讨论】:

【参考方案5】:

我已经完成了很多需要绘图的 .Net 项目,并且会推荐 .Net 之外的解决方案。我离开 .Net 的原因是因为我(通常)通过 JSON 公开我的数据集,并且喜欢将处理转移到客户端。总而言之,这让我不用处理图形密集型任务来扩展我的服务器。

我主要使用 Javascript API,我会推荐 Protovis,因为图表很漂亮(但并不总是与 IE 兼容),并且可以在客户端使用新的 AJAX 馈送数据集进行实时操作。

另一个值得注意的是谷歌图表和可视化。

【讨论】:

【参考方案6】:

呼应其他所有人 - 这完全取决于您需要用它做什么。

我们查看了最近一个项目的一些图表控件,令人惊讶的是其中有多少具有真正的基本限制。例如,我们需要专门设置绘图区域的大小和位置——你会认为这很容易,但 dundas 和 microsoft charting api 做不到。我们在获取图表以合理地格式化日期时间刻度时也遇到了很多问题。

最后我们选择了 dotnetCharting。该网站使它看起来很垃圾,但我们发现它非常好,如果有些地方有点古怪。我会彻底向任何人推荐它。它有一些相当漂亮的 AJAXy 东西,但老实说,你可以(而且我们确实)自己自定义编写大部分内容。在选择工具恕我直言时,还有更重要的事情需要考虑。

列出您认为需要的具体内容,然后找到一个可以执行这些操作的控件。不要做任何假设,因为很多工具都有非常基本的问题(如上所述)。

【讨论】:

【参考方案7】:

我没有使用很多图表工具,但如果您打算使用这个框架,请确保它可以与 MVC 一起使用。我对 DevExpress Grid 和 MVC 有一些问题。

【讨论】:

【参考方案8】:

我没有使用过这些控件的横截面,但在我使用过的控件中,我更喜欢 Infragistics WebChart。

在我看来,设计器易于使用,并且具有很大的灵活性。

我的第二个选择是Google Chart API。

【讨论】:

我个人喜欢 Google Chart API,但很难在商业环境中证明它的合理性 - 您实际上是在将数据发送到另一家公司,以完成无论如何可以在内部微不足道的事情。在很多情况下都不好。 @Moo - 我不反对,但这仍然是一个选择。【参考方案9】:

我在 ASP.NET 中使用过 DevExpress XtraChart,它很棒。我在 Rails 项目中成功使用了 Google Chart API,但由于它是托管的,因此在任何平台上生成点和标签都很容易。

【讨论】:

【参考方案10】:

我在我的项目中使用ChartDirector。我最喜欢这个组件的地方是非常复杂的例子。我已经能够实现他们的财务图表示例,几乎没有任何改动,在此过程中节省了大量时间。

【讨论】:

【参考方案11】:

我在我的一个项目中使用了微软图表控件。它为我提供了我需要的东西。

图表控件教程: http://parasdoshi1989.wordpress.com/2010/10/03/how-to-include-charts-in-visual-studio-2008-express-edition-using-microsoft-chart-control/

【讨论】:

以上是关于ASP.NET 的图表控件的主要内容,如果未能解决你的问题,请参考以下文章

新的 asp.net 图表控件 - 它们会与 MVC(最终)一起使用吗?

使用没有控件的 Microsoft .NET 图表控件库生成图像

怎么用图表控件FineReport做图表

关于flex图表控件问题

WinForm图表控件:将图表保存到文件时更改图表大小

Studio for ASP.NET MVC:MVC控件|不用任何妥协就能创建触控优先的现代化解决方案!