jFreeChart使用总结.docx
- 文档编号:3294502
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:16
- 大小:20.83KB
jFreeChart使用总结.docx
《jFreeChart使用总结.docx》由会员分享,可在线阅读,更多相关《jFreeChart使用总结.docx(16页珍藏版)》请在冰豆网上搜索。
jFreeChart使用总结
jFreeChart使用总结
这里分三部分来介绍jFreeChart。
第一部分介绍jFreeChart产生
图形的流程及相关的重要的类;第二部分介绍四种常用的报表图(饼图、柱状图、折线图、时间序列图);第三部分
介绍在图形中增加ItemLable。
jFreeChart的版本是jfreechart-1.0.0-pre2
(1)
一、jFreeChart产生图形的流程
创建一个数据源(dataset)来包含将要在图形中显示的数据,创建一个JFreeChart对象来代表要显示的图形
把图形输出
重要的类和接口:
org.jfree.data.general.Dataset 所有数据源类都要实现的接口
org.jfree.chart.ChartFactory 由它来产生JFreeChart对象
org.jfree.chart.JFreeChart 所有对图形的调整都是通过它噢!
!
org.jfree.chart.plot.Plot 通过JFreeChart对象获得它,然后再通过它对图形外部部分(例:
坐标轴)调整
注意:
它有很多子类,一般都下嗍造型到它的子类!
org.jfree.chart.renderer.AbstractRenderer 通过JFreeChart对象获得它,然后再通过它对图形内部部分
(例:
折线的类型)调整。
同样,针对不同类型的报表图,它有
着不同的子类实现!
在下面我们简称它为Renderer
下面我们结合不同类型的图形来具体分析这个流程。
二、饼图
饼图的dataset一般是用PieDataset接口,具体实现类是DefaultPieDataset
1、创建一个数据源(dataset):
privatestaticPieDatasetcreateDataset()
{
DefaultPieDatasetdefaultpiedataset=newDefaultPieDataset();//注意是DefaultPieDataset!
!
defaultpiedataset.setValue("One",newDouble(43.200000000000003D));
defaultpiedataset.setValue("Two",newDouble(10D));
defaultpiedataset.setValue("Three",newDouble(27.5D));
defaultpiedataset.setValue("Four",newDouble(17.5D));
returndefaultpiedataset;
}
2、由ChartFactory 产生JFreeChart对象
privatestaticJFreeChartcreateChart(PieDatasetpiedataset)
{
JFreeChartjfreechart=ChartFactory.createPieChart("PieChartDemo1", //图形标题名称
piedataset, //dataset
true, //legend?
true, //tooltips?
false); //URLs?
PiePlotpieplot=(PiePlot)jfreechart.getPlot(); //通过JFreeChart对象获得plot:
PiePlot!
!
pieplot.setNoDataMessage("Nodataavailable"); //没有数据的时候显示的内容
returnjfreechart;
}
一些重要的方法:
pieplot.setExplodePercent(0,0.3D)//把Lable为"One"的那一块”挖“出来30%
3、输出略
三、柱状图
柱状图的dataset一般是用CatagoryDataset接口(具体实现类是DefaultCategoryDataset),也会用IntervalXYDataset
接口
1、创建一个数据源(dataset):
privatestaticCategoryDatasetcreateDataset()
{
Stringseries1="First";
Stringseries2="Second";
Stringseries3="Third";
Stringcategory1="Category1";
Stringcategory2="Category2";
Stringcategory3="Category3";
Stringcategory4="Category4";
Stringcategory5="Category5";
DefaultCategoryDatasetdefaultcategorydataset=newDefaultCategoryDataset();
defaultcategorydataset.addValue(1.0D,series1,category1);
defaultcategorydataset.addValue(4D,series1,category2);
defaultcategorydataset.addValue(3D,series1,category3);
defaultcategorydataset.addValue(5D,series1,category4);
defaultcategorydataset.addValue(5D,series1,category5);
defaultcategorydataset.addValue(5D,series2,category1);
defaultcategorydataset.addValue(7D,series2,category2);
defaultcategorydataset.addValue(6D,series2,category3);
defaultcategorydataset.addValue(8D,series2,category4);
defaultcategorydataset.addValue(4D,series2,category5);
defaultcategorydataset.addValue(4D,series3,category1);
defaultcategorydataset.addValue(3D,series3,category2);
defaultcategorydataset.addValue(2D,series3,category3);
defaultcategorydataset.addValue(3D,series3,category4);
defaultcategorydataset.addValue(6D,series3,category5);
returndefaultcategorydataset;
}
2、由ChartFactory 产生JFreeChart对象
privatestaticJFreeChartcreateChart(CategoryDatasetcategorydataset)
{
JFreeChartjfreechart=ChartFactory.createBarChart("BarChartDemo",//图形标题名称
"Category",//domain轴Lable
这里先简单理解为横坐标Lable好了
"Value",//range轴Lable
这里也先简单理解为纵坐标Lable好了
categorydataset,// dataset
PlotOrientation.VERTICAL,//垂直显示
true,//legend?
true, //tooltips?
false);//URLs?
jfreechart.setBackgroundPaint(Color.white); //设定背景色为白色
CategoryPlotcategoryplot=jfreechart.getCategoryPlot();//获得plot:
CategoryPlot!
!
categoryplot.setBackgroundPaint(Color.lightGray);//设定图表数据显示部分背景色
categoryplot.setDomainGridlinePaint(Color.white);//横坐标网格线白色
categoryplot.setDomainGridlinesVisible(true);//可见
categoryplot.setRangeGridlinePaint(Color.white);//纵坐标网格线白色
//下面两行使纵坐标的最小单位格为整数
NumberAxisnumberaxis=(NumberAxis)categoryplot.getRangeAxis();
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
BarRendererbarrenderer=(BarRenderer)categoryplot.getRenderer();//获得renderer注意这里是下嗍造型
到BarRenderer!
!
barrenderer.setDrawBarOutline(false);//Bar的外轮廓线不画
GradientPaintgradientpaint=newGradientPaint(0.0F,0.0F,Color.blue,
0.0F,0.0F,newColor(0,0,64)); //设定特定颜色
GradientPaintgradientpaint1=newGradientPaint(0.0F,0.0F,Color.green,
0.0F,0.0F,newColor(0,64,0));
GradientPaintgradientpaint2=newGradientPaint(0.0F,0.0F,Color.red,
0.0F,0.0F,newColor(64,0,0));
barrenderer.setSeriesPaint(0,gradientpaint);//给series1Bar设定上面定义的颜色
barrenderer.setSeriesPaint(1,gradientpaint1);//给series2Bar设定上面定义的颜色
barrenderer.setSeriesPaint(2,gradientpaint2);//给series3Bar设定上面定义的颜色
CategoryAxiscategoryaxis=categoryplot.getDomainAxis(); //横轴上的Lable45度倾斜
categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
returnjfreechart;
}
一些重要的方法:
(增加一块标记)
IntervalMarkerintervalmarker=newIntervalMarker(4.5D,7.5D);
intervalmarker.setLabel("TargetRange");
intervalmarker.setLabelFont(newFont("SansSerif",2,11));
intervalmarker.setLabelAnchor(RectangleAnchor.LEFT);
intervalmarker.setLabelTextAnchor(TextAnchor.CENTER_LEFT);
intervalmarker.setPaint(newColor(222,222,255,128));
categoryplot.addRangeMarker(intervalmarker,Layer.BACKGROUND);
四、折线图
折线图的dataset两种CatagoryDataset接口(具体实现类是DefaultCategoryDataset),XYDataset接口
1、CatagoryDataset接口:
A、创建一个数据源(dataset):
privatestaticCategoryDatasetcreateDataset()
{
Stringseries1="First";
Stringseries2="Second";
Stringseries3="Third";
Stringtype1="Type1";
Stringtype2="Type2";
Stringtype3="Type3";
Stringtype4="Type4";
Stringtype5="Type5";
Stringtype6="Type6";
Stringtype7="Type7";
Stringtype8="Type8";
DefaultCategoryDatasetdefaultcategorydataset=newDefaultCategoryDataset();
defaultcategorydataset.addValue(1.0D,series1,type1);
defaultcategorydataset.addValue(4D,series1,type2);
defaultcategorydataset.addValue(3D,series1,type3);
defaultcategorydataset.addValue(5D,series1,type4);
defaultcategorydataset.addValue(5D,series1,type5);
defaultcategorydataset.addValue(7D,series1,type6);
defaultcategorydataset.addValue(7D,series1,type7);
defaultcategorydataset.addValue(8D,series1,type8);
defaultcategorydataset.addValue(5D,series2,type1);
defaultcategorydataset.addValue(7D,series2,type2);
defaultcategorydataset.addValue(6D,series2,type3);
defaultcategorydataset.addValue(8D,series2,type4);
defaultcategorydataset.addValue(4D,series2,type5);
defaultcategorydataset.addValue(4D,series2,type6);
defaultcategorydataset.addValue(2D,series2,type7);
defaultcategorydataset.addValue(1.0D,series2,type8);
defaultcategorydataset.addValue(4D,series3,type1);
defaultcategorydataset.addValue(3D,series3,type2);
defaultcategorydataset.addValue(2D,series3,type3);
defaultcategorydataset.addValue(3D,series3,type4);
defaultcategorydataset.addValue(6D,series3,type5);
defaultcategorydataset.addValue(3D,series3,type6);
defaultcategorydataset.addValue(4D,series3,type7);
defaultcategorydataset.addValue(3D,series3,type8);
returndefaultcategorydataset;
}
B、由ChartFactory 产生JFreeChart对象 (与上面重复的部分就不再注释)
privatestaticJFreeChartcreateChart(CategoryDatasetcategorydataset)
{
JFreeChartjfreechart=ChartFactory.createLineChart("LineChartDemo1",
"Type",
"Value",
categorydataset,
PlotOrientation.VERTICAL,
true,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jFreeChart 使用 总结