除了JFreeChart之外,什么是最好的开源Java图表库?

142

为什么Java没有更多易于使用的开源图表库呢?在这个领域中唯一成功的开源项目似乎是jfreechart,但它甚至没有提供任何文档或可用示例。


免费的Java图表框架适用于Java Swing:http://frontangle.com/#/icharts/。您可以在其中制作大多数类型的图表。 - Oliver Watkins
10个回答

59

2
jfreechart 的一个非常有用的贡献是一个简单的 API,它允许您通过一个简单的函数调用生成一个图表,例如 plot(array),并返回一个图表对象,您可以进一步自定义,例如添加标题、网格线等等... - fccoelho
4
对于某些事情(高速数学绘图),jfreechart表现平庸,不是很出色。 - Jason S
2
我不会在Java中做这个。我发现JChart2D比JFreeChart更好,但它也有其局限性;对于一个项目,我最终自己制作了一个图形库,这是一个痛苦的经历,但它做到了我需要的。我希望Java中有Python的matplotlib的移植版本。 - Jason S
9
是的,下载开发者指南需要支付65美元。 - Totty.js
2
称呼JFreeChart为“棒极了”有些言过其实。“对于简单的东西来说很棒”可能更准确。Java的Matplotlib克隆版加一分。 - garyp
显示剩余9条评论

58

有一个与图表和图形相关的API叫做charts4j,它使开发人员能够通过直观且简单的Java API来以编程方式创建在Google Chart API中可用的图表。

声明:我写了 charts4j 。 我们将在未来几周内发布另一个重要版本。


11
干得好!唯一的缺点是需要联网,不过我想不起上次掉线是什么时候了。;-) - fccoelho
20
出于安全考虑,一些商店会阻止服务器连接到外部互联网服务器(即使这些服务器可以从互联网访问)。 - Joachim Sauer
4
请注意,自2012年4月20日起,谷歌静态图表API已被废弃。 - David Rabinowitz
7
一种不需要连接到外部互联网服务器的替代API是XChart - herrtim
冰山图表:https://github.com/oliverwatkins/Iceberg-Charts/wiki 快速且易于入门。 - Oliver Watkins
显示剩余3条评论

15

EasyCharts是商业软件,所以我不能在我的项目中使用它。我使用了GRAL图形库代替它。我发现它非常容易自定义,并且像JFreeChart一样使用LGPL许可证,因此您可以免费使用:

http://trac.erichseifert.de/gral


1
我知道现在可能有点晚了,但我正在寻找文档,却找不到。如果您有任何文档,能否分享一下? - varunrao321
2
看看冰山图表:http://frontangle.com/icharts/。我创建了它。我认为它与JFreechart和其他所有图表库一样出色。 - Oliver Watkins

14

很不错的问题,我前几天也在寻找替代JFreeChart的方案。JFreeChart非常出色且全面,我在多个项目中使用过它。但最近的问题是,将它添加到一个只有50kb的小程序中需要额外增加1.6mb的库,因此我在寻找一些更小的替代方案。

JFreeChart的常见问题解答中列出了一些替代方案。与JFreeChart相比,它们大多数都比较基本,并且有些看起来相当丑陋。其中最有希望的似乎是Java Chart Construction KitOpenChart2

我还发现了一个商业产品EasyCharts,但在某些情况下似乎可以免费使用。

最终,我回到了经过验证的JFreeChart,并使用Proguard来将其精简成更可管理的大小。

我建议您再看一下JFreeChart。虽然用户指南需要购买,但演示显示了可能性,而且从API文档中很容易了解如何操作。基本上,您可以从ChartFactory静态方法开始,并将结果JFreeChart对象插入到ChartPanel中显示它。如果有困难,我相信您会在StackOverflow上快速获得答案。


我创建了一个简单的“plot”包装器,围绕Java图表构建工具包,使其在制作简单的图表时非常容易使用 https://bitbucket.org/hughperkins/easyjcckit - Hugh Perkins

6
你可以尝试使用Jzy3d。它可以绘制简单的三维图表(如曲面、散点、条形等),并有许多选项可供自定义轴、刻度等布局。wiki上有很多例子和文档。
它是免费且开源的。
祝好,
马丁

5

对于动态 2D 图表,我一直在使用 JChart2D。它快速、简单,并且被定期更新。作者很快回应了我的一个错误报告和一些功能请求。我们公司更喜欢它而不是 JFreeChart,因为它专为动态使用而设计,不像 JFreeChart。


4

有一个名为JChart的开源软件。我不确定你要绘制什么图表以及使用何种方式(servlets、swing等),所以建议您尝试几个不同的软件,看哪个适合您。

http://sourceforge.net/projects/jchart/

我也使用过JGraph,但只使用过他们的商业版本。不过他们确实提供了一个开源版本:

https://github.com/jgraph/jgraphx


4

看起来很不错!轻量级且没有依赖,哇,做得好。我看了一下维基,非常简单明了。我的问题是:它是否允许在X轴上使用类别而不是数值? - Gigab0rt
2
哇,太酷了,感谢您的评论。线图中系列的数量实际上没有限制。它可以绘制任意数量的图表。我刚刚发布了一个新版本,可以将图表保存为jpg或png文件。更多的图表类型,如条形图、饼图、雷达图等正在计划中。 - suvi
好的,让我在它变老之前试一下... :D - gumuruh
这是GPL许可证。你能否将其更改为LGPL(或Apache 2,或MPL)呢? - Hugh Perkins
我考虑使用不同于jfreechart的图表库的主要原因是希望有一个由社区维护且提供免费使用文档的图表库。遗憾的是,jchartlib在这两个方面都没有优势 :-( - Hugh Perkins

2
我找到了这个框架:jensoft sw2d,非商业使用免费(双重许可)。请访问http://www.jensoft.org。祝好。

2
这个网站提到sw2d是使用LGPL许可的;那不是可以在开源和商业工具中免费使用吗? - Ewan Heming

1

我以前用过EasyCharts,它名副其实。虽然它不像JFreeChart那样强大,但是EasyCharts的JAR文件比JFreeChart小得多。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接