JFreeChart主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。当前JFreeChart最新版本是1.0.13,下面demo和刻度蜘蛛环图都基于此版本。
对于刻度蜘蛛环图,效果如下图,网上有一些例子,但是只有刻度,同时不能指定刻度最大值。最后没办法,只好自己改一个。
改的时候,决定新建一个chart类,通过继承JFreechart自带例子中的SpiderWebPlot类来实现,SpiderWebPlot类的demo效果见下图。
这个demo没有刻度,没有圆环。
整理一下所有要做的事情:
1.加入刻度,可自定义刻度数以及刻度的最大值,同时刻度值前后可以是加入单位符号,如百分号、美元符号、人民币符号等;
2.加入圆环,圆环的半径与刻度一一对应,有几个刻度,就有几个圆环
画刻度的代码直接参考了网上的例子,自己增加了刻度数、刻度最大值、单位符号的功能;然后画圆环的代码参考自一个demo,见下图,然后修改了相应的算法,确保与刻度对应,搞定。
在修改的过程中,还碰到了中文乱码问题。对与JFreechart中文乱码问题,网上搜素答案也是一大把,但都不能解决。最后还是跟踪了一下源代码,发现在创建JFreeChart对象的时候,默认应用了JFreechart提供的标准主题,其标准主题提供的文字是Tahoma,这个字体不支持中文,最后一次性的将其改为“宋体”解决了(如果不想修改JFreechart的代码,可能就需要在每个地方去单独设置这些参数了)。在JFreechart中,调用这个标准主题的代码都是在创建jfreechart对象的代码中,如demo代码中的createChart方法的ChartUtilities.applyCurrentTheme(jfreechart);语句,以及工厂类ChartFactory的createPolarChart方法中currentTheme.apply(chart);语句。
/**
* Creates a new default instance.
*
* @param name the name of the theme (<code>null</code> not permitted).
*/
public StandardChartTheme(String name) {
if (name == null) {
throw new IllegalArgumentException("Null 'name' argument.");
}
this.name = name;
/将四个Tahoma改成系统支持的中文字体即可,如宋体
this.extraLargeFont = new Font("Tahoma", Font.BOLD, 20);/
this.largeFont = new Font("Tahoma", Font.BOLD, 14);
this.regularFont = new Font("Tahoma", Font.PLAIN, 12);
this.smallFont = new Font("Tahoma", Font.PLAIN, 10);
this.titlePaint = Color.black;
......
}
总结一下,由于自己对JAVA画图绘图的API一窍不通,所以才用了这样的思路去改;在改的过程中,发现都是通过修改绘图的方法实现这些功能的,如果自己熟悉JAVA画图绘图的API,其实,拿到第一个demo的时候基本上就可以直接改了。
附件是刻度蜘蛛环图和demo的源码。
- 大小: 49.2 KB
- 大小: 14.8 KB
- 大小: 20.2 KB
分享到:
相关推荐
jfreechart雷达图,jfreechart蜘蛛网图,jfreechart带刻度的雷达图
20201012JFreeChart生成饼图和环图技术.zip
JFreeChart画雷达图、带刻度雷达图、蜘蛛网、带刻度蜘蛛网
JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领...
使用JFreeChart创建图表.ppt
使用 JFreeChart来创建基于web的图表
JFreeChart 股票K线图创建过程
* 创建chart * * @return */ public JFreeChart createChart(String Ytitle, String title, CategoryDataset lineData, CategoryDataset barData) { //参考附件 return chart; } //struts 部分 <!--...
JFreeChart创建柱状图,之前网上很多都是创建柱状图的,静态的。数据更新之后柱状图随之改变,代码实现详见附件代码。所需要的jar包是jfreechart-1.0.13.jar,gnujaxp.jar,jcommon-1.0.16.jar
用JFreeChart创建基于Web的图表.pdf
jfreechart 堆栈柱状图跟折线图结合拼接 jar包请戳http://download.csdn.net/detail/a156435646/7424707
JFreeChart 饼状图 柱状图 柱状图 堆积柱状图 折线图 这个是我特地开发的一个用JFreeChart开发的用来画图的项目,已经开发成形了各种项目的各种需求的项目,并且自己可以拓展,根据需求修改代码,完成项目的需要。 ...
flex案例\flex图形\玫瑰图\jfreechart小记(雷达图+折线图).doc
利用jfreechart绘制的横向立体柱状图,横坐标是数值,纵坐标是数据分类,需要提前引入jfreechart包文件到工程里,才不会报错
JFreeChart双Y轴折线图实例,可以直接运行,实例类为LineChartDemo1.JAVA,有注释。 若想在web工程使用只需如下。 String filename = ServletUtilities.saveChartAsPNG(jfreechart, 600, 400, null, session); ...
利用jfreechart绘制的漂亮的折线图,实现双纵坐标,折线点标签还带箭头指示,非常直观,需要提前下载jfreechart.jar文件,否则我的类会报错,也即是要配置运行环境
使用JFreeChart来创建基于web的图表
JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。...