1、org.jfree.chart,org.jfree.data。其中前者主要与图形本身有关,后者与图形显示的数据有关。具体研究如果大家有兴趣的话可以自己研究,以后有时间我会告诉大家怎么去研究源码。核心类主要有:org.jfree.chart.JFreeChart:图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象org.jfree.data.category.XXXDataSet:数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类org.jfree.chart.plot.
2、XXXPlot:图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持org.jfree.chart.axis.XXXAxis:用于处理图表的两个轴:纵轴和横轴org.jfree.chart.render.XXXRender:负责如何显示一个图表对象org.jfree.chart.urls.XXXURLGenerator:用于生成Web图表中每个项目的鼠标点击链接XXXXXToolTipGenerator:用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类1:饼图:package test;import java.awt.
3、Font;import javax.swing.JPanel;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;import org.jfree.chart.plot.PiePlot;import org.jfree.data.general.DefaultPieDataset;import org.jfree.data.general.PieDataset;import org.jfree.ui.ApplicationFrame;imp
4、ort org.jfree.ui.RefineryUtilities;public class PieCharts extends ApplicationFramepublic PieCharts(String ssuper(s;setContentPane(createDemoPanel(;/ 生成显示图表的面板public static JPanel createDemoPanel(JFreeChart jfreechart = createChart(createDataset(;return new ChartPanel(jfreechart;/ 生成饼图数据集对象public sta
5、tic PieDataset createDataset(DefaultPieDataset defaultpiedataset = new DefaultPieDataset(; defaultpiedataset.setValue(管理人员,10.02D;defaultpiedataset.setValue(市场人员,20.23D;开发人员,60.02D;OEM人员其他人员,5.11D;return defaultpiedataset;/生成图表主对象JFreeChartpublic static JFreeChart createChart(PieDataset piedataset/定
6、义图表对象JFreeChart jfreechart = ChartFactory.createPieChart(CityInfoPort公司组织架构图,piedataset,true,true,false;/获得图表显示对象PiePlot pieplot = (PiePlotjfreechart.getPlot(;/设置图表标签字体pieplot.setLabelFont(new Font(SansSerif,Font.BOLD,12;pieplot.setNoDataMessage(No data available;pieplot.setCircular(true;pieplot.set
7、LabelGap(0.01D;/间距return jfreechart;public static void main(String argsPieCharts fjc = new PieCharts( fjc.pack(;RefineryUtilities.centerFrameOnScreen(fjc;fjc.setVisible(true;2:折线图import org.jfree.chart.axis.NumberAxis;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PlotOrientati
8、on;import org.jfree.data.category.DefaultCategoryDataset;public class LineCharts extends ApplicationFrame public LineCharts(String s setContentPane(createDemoLine(;public static void main(String args LineCharts fjc = new LineCharts(折线图fjc.pack(;public static JPanel createDemoLine( / 生成图表主对象JFreeChar
9、tpublic static JFreeChart createChart(DefaultCategoryDataset linedataset JFreeChart chart = ChartFactory.createLineChart(, / chart title 时间, / domain axis label销售额(百万, / range axis labellinedataset, / dataPlotOrientation.VERTICAL, / orientationtrue, / include legendtrue, / tooltipsfalse / urlsCatego
10、ryPlot plot = chart.getCategoryPlot(;/ customise the range axis.NumberAxis rangeAxis = (NumberAxis plot.getRangeAxis(;rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits(; rangeAxis.setAutoRangeIncludesZero(true;rangeAxis.setUpperMargin(0.20;rangeAxis.setLabelAngle(Math.PI / 2.0;return
11、chart;/生成数据public static DefaultCategoryDataset createDataset( DefaultCategoryDataset linedataset = new DefaultCategoryDataset(;/ 各曲线名称String series1 = 冰箱String series2 = 彩电String series3 = 洗衣机/ 横轴名称(列名称String type1 = 1月String type2 = 2月String type3 = 3月linedataset.addValue(0.0, series1, type1;lined
12、ataset.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.addVal
13、ue(8.9, series3, type3;return linedataset;3:柱状图:import java.awt.Color;import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.renderer.category.BarRenderer3D;import org.jfree.data.category.CategoryDataset;import org.jfree.data
14、.general.DatasetUtilities;public class BarCharts extends ApplicationFrame public BarCharts(String s setContentPane(createDemoBar(;/ 生成显示图表的面板 public static JPanel createDemoBar( JFreeChart jfreechart = createChart(createDataset(; return new ChartPanel(jfreechart; / 生成图表主对象 JFreeChart public static J
15、FreeChart createChart(CategoryDataset dataset JFreeChart chart = ChartFactory.createBarChart3D(水果销量统计图, / 建立 3D 柱状图 水果,/横轴名称 销量,/纵轴名称 dataset,/数据集 PlotOrientation.VERTICAL,/纵向显示 true,/显示每个颜色柱子的柱名 false, false; CategoryPlot plot = chart.getCategoryPlot(;/设置图的高级属性 BarRenderer3D renderer = new BarRende
16、rer3D(;/3D 属性修改 renderer.setBaseOutlinePaint(Color.BLACK;/设置边框颜色为 black renderer.setWallPaint(Color.gray; /设置 wall 的颜色为 gray renderer .setItemLabelGenerator(new StandardCategoryItemLabelGenerator(;/设 置柱顶数据,API 中居然没有 StandardCategoryItemLabelGenerator 这个类 /renderer.setItemLabelFont(new Font(黑体,Font.P
17、LAIN,12;/设置柱 顶数据字体 renderer.setItemLabelsVisible(true;/打开 ItemLabel 开关 plot.setRenderer(renderer;/将修改后的属性值保存到图中 plot.setForegroundAlpha(0.6f;/柱的透明度 return chart; / 生成数据 public static CategoryDataset createDataset( double data = new double 672, 766, 223, 540, 126 , 325, 521, 210, 340, 106 , 332, 256,
18、 523, 240, 526 ;/ 设置数据 String rowKeys = 苹果, 梨子葡萄 ;/ 行标志 String columnKeys = 北京上海广州成都深圳/ 列 标志 CategoryDataset linedataset = DatasetUtilities.createCategoryDataset( rowKeys, columnKeys, data; / 建立数据集 return linedataset; public static void main(String args BarCharts fjc = new BarCharts(柱状图 RefineryUtilities.centerFrameOnScreen(fjc; fjc.setVisible(true;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1