用jfreechart制作折线图饼图柱图Word文档下载推荐.docx
《用jfreechart制作折线图饼图柱图Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《用jfreechart制作折线图饼图柱图Word文档下载推荐.docx(7页珍藏版)》请在冰豆网上搜索。
org.jfree.chart,org.jfree.data。
其中前者主要与图形
本身有关,后者与图形显示的数据有关。
具体研究如果大家有兴趣的话可以自己研究,以后有时间我会告诉大家怎么去
研究源码。
核心类主要有:
org.jfree.chart.JFreeChart:
图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。
JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象
org.jfree.data.category.XXXDataSet:
数据集对象,用于提供显示图表所用的数据。
根据不同类型的图表对应着很多类型的数据集对象类
org.jfree.chart.plot.XXXPlot:
图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持org.jfree.chart.axis.XXXAxis:
用于处理图表的两个轴:
纵轴和横轴
org.jfree.chart.render.XXXRender:
负责如何显示一个图表对象
org.jfree.chart.urls.XXXURLGenerator:
用于生成Web图表中每个项目的鼠标点击链接
XXXXXToolTipGenerator:
用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类
1:
饼图:
packagetest;
importjava.awt.Font;
importjavax.swing.JPanel;
importorg.jfree.chart.ChartFactory;
importorg.jfree.chart.ChartPanel;
importorg.jfree.chart.JFreeChart;
importorg.jfree.chart.plot.PiePlot;
importorg.jfree.data.general.DefaultPieDataset;
importorg.jfree.data.general.PieDataset;
importorg.jfree.ui.ApplicationFrame;
importorg.jfree.ui.RefineryUtilities;
publicclassPieChartsextendsApplicationFrame{
publicPieCharts(Strings{
super(s;
setContentPane(createDemoPanel(;
}
//生成显示图表的面板
publicstaticJPanelcreateDemoPanel({
JFreeChartjfreechart=createChart(createDataset(;
returnnewChartPanel(jfreechart;
//生成饼图数据集对象
publicstaticPieDatasetcreateDataset({
DefaultPieDatasetdefaultpiedataset=newDefaultPieDataset(;
defaultpiedataset.setValue("
管理人员"
10.02D;
defaultpiedataset.setValue("
市场人员"
20.23D;
开发人员"
60.02D;
OEM人员"
其他人员"
5.11D;
returndefaultpiedataset;
//生成图表主对象JFreeChart
publicstaticJFreeChartcreateChart(PieDatasetpiedataset{
//定义图表对象
JFreeChartjfreechart=ChartFactory.createPieChart("
CityInfoPort公司组织架构图"
piedataset,true,true,false;
//获得图表显示对象
PiePlotpieplot=(PiePlotjfreechart.getPlot(;
//设置图表标签字体
pieplot.setLabelFont(newFont("
SansSerif"
Font.BOLD,12;
pieplot.setNoDataMessage("
Nodataavailable"
;
pieplot.setCircular(true;
pieplot.setLabelGap(0.01D;
//间距
returnjfreechart;
publicstaticvoidmain(String[]args{
PieChartsfjc=newPieCharts("
fjc.pack(;
RefineryUtilities.centerFrameOnScreen(fjc;
fjc.setVisible(true;
2:
折线图
importorg.jfree.chart.axis.NumberAxis;
importorg.jfree.chart.plot.CategoryPlot;
importorg.jfree.chart.plot.PlotOrientation;
importorg.jfree.data.category.DefaultCategoryDataset;
publicclassLineChartsextendsApplicationFrame{
publicLineCharts(Strings{
setContentPane(createDemoLine(;
publicstaticvoidmain(String[]args{
LineChartsfjc=newLineCharts("
折线图"
fjc.pack(;
publicstaticJPanelcreateDemoLine({
//生成图表主对象JFreeChart
publicstaticJFreeChartcreateChart(DefaultCategoryDatasetlinedataset{
JFreeChartchart=ChartFactory.createLineChart("
//charttitle"
时间"
//domainaxislabel
"
销售额(百万"
//rangeaxislabel
linedataset,//data
PlotOrientation.VERTICAL,//orientation
true,//includelegend
true,//tooltips
false//urls
CategoryPlotplot=chart.getCategoryPlot(;
//customisetherangeaxis...
NumberAxisrangeAxis=(NumberAxisplot.getRangeAxis(;
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits(;
rangeAxis.setAutoRangeIncludesZero(true;
rangeAxis.setUpperMargin(0.20;
rangeAxis.setLabelAngle(Math.PI/2.0;
returnchart;
//生成数据
publicstaticDefaultCategoryDatasetcreateDataset({DefaultCategoryDatasetlinedataset=newDefaultCategoryDataset(;
//各曲线名称
Stringseries1="
冰箱"
Stringseries2="
彩电"
Stringseries3="
洗衣机"
//横轴名称(列名称
Stringtype1="
1月"
Stringtype2="
2月"
Stringtype3="
3月"
linedataset.addValue(0.0,series1,type1;
linedataset.addValue(4.2,series1,type2;
linedataset.addValue(3.9,series1,type3;
linedataset.addValue(1.0,series2,type1;
linedataset.addValue(5.2,series2,type2;
linedataset.addValue(7.9,series2,type3;
linedataset.addValue(2.0,series3,type1;
linedataset.addValue(9.2,series3,type2;
linedataset.addValue(8.9,series3,type3;
returnlinedataset;
3:
柱状图:
importjava.awt.Color;
importorg.jfree.chart.labels.StandardCategoryItemLabelGenerator;
importorg.jfree.chart.plot.CategoryPlot;
importorg.jfree.chart.renderer.category.BarRenderer3D;
importorg.jfree.data.category.CategoryDataset;
importorg.jfree.data.general.DatasetUtilities;
publicclassBarChartsextendsApplicationFrame{
publicBarCharts(Strings{
setContentPane(createDemoBar(;
//生成显示图表的面板publicstaticJPanelcreateDemoBar({JFreeChartjfreechart=createChart(createDataset(;
returnnewChartPanel(jfreechart;
}//生成图表主对象JFreeChartpublicstaticJFreeChartcreateChart(CategoryDatasetdataset{JFreeChartchart=ChartFactory.createBarChart3D("
水果销量统计图"
//建立3D柱状图"
水果"
//横轴名称"
销量"
//纵轴名称dataset,//数据集PlotOrientation.VERTICAL,//纵向显示true,//显示每个颜色柱子的柱名false,false;
CategoryPlotplot=chart.getCategoryPlot(;
//设置图的高级属性BarRenderer3Drenderer=newBarRenderer3D(;
//3D属性修改renderer.setBaseOutlinePaint(Color.BLACK;
//设置边框颜色为blackrenderer.setWallPaint(Color.gray;
//设置wall的颜色为grayrenderer.setItemLabelGenerator(newStandardCategoryItemLabelGenerator(;
//设置柱顶数据,API中居然没有StandardCategoryItemLabelGenerator这个类//renderer.setItemLabelFont(newFont("
黑体"
Font.PLAIN,12;
//设置柱顶数据字体renderer.setItemLabelsVisible(true;
//打开ItemLabel开关plot.setRenderer(renderer;
//将修改后的属性值保存到图中plot.setForegroundAlpha(0.6f;
//柱的透明度returnchart;
}//生成数据publicstaticCategoryDatasetcreateDataset({double[][]data=newdouble[][]{{672,766,223,540,126},{325,521,210,340,106},{332,256,523,240,526}};
//设置数据String[]rowKeys={"
苹果"
"
梨子"
葡萄"
};
//行标志String[]columnKeys={"
北京"
上海"
广州"
成都"
深圳"
//列标志CategoryDatasetlinedataset=DatasetUtilities.createCategoryDataset(rowKeys,columnKeys,data;
//建立数据集returnlinedataset;
}
publicstaticvoidmain(String[]args{BarChartsfjc=newBarCharts("
柱状图"
RefineryUtilities.centerFrameOnScreen(fjc;
fjc.setVisible(true;
}}