图图学开源JFreeChart(共计29回)
作者 耿祥义
摘 要
《图图学开源JFreeChart》分成29回(34个实例),每回学习的知识点都很专一,通俗易懂,图文并茂,例子选取恰当、易于掌握所支撑的知识点。分别讲解了 柱图、JFreeChart框架的MVC结构、饼图、折线图、函数图、散点图、面积图和甘特图。
目 录
前 言
可能有人认为使用AI大模型也可以绘制一些静态的Chart(图表),但这需要有一套很好和专业提示词(开发这样一套提示词的成本也是一笔不小数目,而且测试这套提示词也是很大的工作量),而且不同AI 大模型或相同的AI 大模型对同样的提示词的每次回答未必相同,最担心的是,我们不清楚 大模型会在什么情况下“不靠谱”(大模型也许一直在变化)。如果专业学得好,就可以借助AI大模型提出更专业的提示词,也能更好的判断所得结果是否符合需求,即让 AI大模型作为自己的工具,并达到 作如虎添翼的效果(把最好的 AI大模型给老虎 ,它也不会添翼)。
FreeChart是很优秀的图表库开源框架,有很好的官方维护网站,而且是免费的。JFreeChart框架非常小,开发者可以节约成本、很容易将JFreeChart部署到自己的开发的软件产品中,而且不会导致软件产品的臃肿。从某种意义上说,JFreeChart框架是真人做好的稳定可靠的“智能”产品,使用者可以大胆放心的使用之。和一些绘图软件或AI智能产品不同, JFreeChart为用户提供的是非静态的 动态的Chart,用户把 鼠标指针 在Chart的区域悬停 时可以观看Chart中某些数据的细节、用户可以使用文件动态生成Chart、用户可以借助Java Swing动态更新Chart等。 用户也可以 随时把满意的动态Chart保存到PDF或图像文件中得到静态的Char。
尽管JFreeChart框架非常小,但内容却非常丰富,初学者只需要掌握核心基础即可,如果初学者的Java基础比较好,特别是Java Swing或JavaFX的知识比较扎实,就能更加灵活的使用JFreeChart框架,这里我们也给出了 JFreeChart结合 Java Swing的有实际意义的例子,其 结合难度不超出《Java2实用教程第7版或第6版的第9章,第10章的内容》 。也就是说JFreeChart框架本身只是提供基本的chart相关的类,应用的灵性和扩展依赖学习者的其他基础技能,比如,我们在第26回特意选择绘制绘制sin、cos,绘制椭圆,笛卡尔爱心曲线, 旋转椭圆、 旋转笛卡尔爱心曲线等。如果您重来没听说过三角函数,最后一回就有相当难度,如果了解 三角函数,最后一回就非常简单(再绘制任何平面图形都基本无困难,这也是框架的目的),即26回的目的是想说明难度已经不在 JFreeChart框架本身(基础扎实是硬道理)。
这里是针对初学者讲解 JFreeChart框架一些基本的模块,特别是柱图、饼图和折线图(属于大众图,不需要有很多其他专业的知识),学习者最少的收益也是:“哦,有个基于Java的不错的框架叫JFreeChart”," 走一走,转一转,不学不要紧,了解一下也是亲"。学习者在后续的工作或学习中,就能比较轻松地根据其自身专业和实际项目需求、借助官方网站提供的API现学现用即可 。
学习 JFreeChart需要的JDK版本不能低于JDK8,这里使用的是JDK21。所有的源文件需要按 utf-8保存,然后直接编译即可(如果JDK版低于JDK21,所有的源文件可按ANSI保存,直接编译即可)。
考虑到公众号每天的发布次数只有1次,所以行文的特点是,按着《图图学开源JFreeChart》 分成29回(34个实例),每回学习的知识点都很专一,通俗易懂,图文并茂,例子选取恰当、易于掌握所支撑的知识点。 29回发表属性均为 原创,勿要抄袭另行发表或出版,转贴请标明出处( 编写不易,需要学习JFreeChart API) 。
《图图学开源JFreeChart》分别讲解了 柱图(13/29)、JFreeChart框架中的MVC思想(1/29),饼图(9/29)、折线图(2/29),函数曲线(XYLine)图(1/29),散点图(1/29)、面积图(1/29)、甘特图(1/29),如图1所示- 用第22回-“动态编辑饼图”编辑而成。
图1 第22回-”动态编辑饼图“编辑而成
如果您还没有学习过Java语言,建议首先学习Java语言(特别是Java Swing的基础内容),自荐作者的教材:
,《Java2实用教程第7版》(或第6版)
《Java面向对象程序设计第3版》
这是
图图学开源JFreeChart的第1回-《第一个柱图》,这回学习的主要内容是:
JFreeChart开源框架简介
下载框架包
代码与调试
一、 JFreeChart-开源框架简介
1. 官方网站:
https://www.jfree.org/jfreechart/download.html
或
https://sourceforge.net/projects/jfreechart/
JFreeChart 是一款完全基于 Java 的免费图表库, 支持广泛的图表类型,涵盖柱图、XYLine图(函数曲线)、折线图、饼图、散点图、面积图、甘特图等几十种 常见和 特殊的图表类型。 在一个复杂的商业数据分析系统中,既可以用柱图展示不同产品的销售数量对比,又可以用甘特图规划任务进度。它能让开发者轻松地在其应用程序中展示具有专业水准的图表。JFreeChart 的丰富功能包括:
一套连贯且文档完善的应用程序编程接口(API),支持多种类型的图表;
灵活的设计,易于扩展,适用于服务器端和客户端应用程序;
支持多种输出类型,包括 Swing 和 JavaFX 组件、图像文件(如 PNG 和 JPEG 格式)以及矢量图形文件格式(如 PDF、EPS 和 SVG 格式);
JFreeChart 是开源框架,更确切地说是 免费框架。它遵循 GNU 宽通用公共许可证(LGPL)进行分发, 允许在专有应用程序中使用。
2. 下载框架包
二、 代码与效果
将jfreechart-1.0.19.zip解压后的lib文件夹复制到C:\StudyChart,然后在命令行进入开发目录C:\JavaChart。(C:\StudyChart是作者使用的开发目录,您可以使用任何自己喜欢的开发目录或名称)。
例子1.1 选课人数柱图表( 效果如图1.1)
如下 编译和 运行代码。
图1.1 选课人数柱图
FirstJfreeChart.java