//=====================================================================
//Title£ºJFreeChartÈëÃÅÖ¸ÄÏ
//Author:лĪ·æ Email:yyxmf111@sogou.com QQ:35814522
//=====================================================================
Ò»¡¢JFreeChart»ñÈ¡¡£
JFreeChartÊÇJFreeChart¹«Ë¾ÔÚ¿ªÔ´ÍøÕ¾SourceForge.netÉϵÄÒ»¸öÏîÄ¿£¬¸Ã¹«Ë¾µÄÖ÷Òª²úÆ·ÓÐÈçÏ£º
1¡¢JFreeReport£º±¨±í½â¾ö¹¤¾ß
2¡¢JFreeChart£ºJavaͼÐνâ¾ö·½°¸£¨Application/Applet/Servlet/Jsp£©
3¡¢JCommon£ºJFreeReportºÍJFreeChartµÄ¹«¹²Àà¿â
4¡¢JFreeDesigner£ºJFreeReportµÄ±¨±íÉè¼Æ¹¤¾ß
ÎÒÃÇ¿ÉÒÔ´Ójfree¹Ù·½ÍøÕ¾ÉÏ»ñÈ¡×îа汾ºÍÏà¹Ø×ÊÁÏ£¨µ«ÊÇjfreeµÄdocumentÐèÒª40ÃÀ½ð²ÅÄÜ»ñÈ¡£©£¬
»ñÈ¡µØÖ·£ºhttp://www.jfree.org/jfreechart/index.html£¨Í¬Ê±¿ÉÒÔ»ñµÃ¼òÃ÷½éÉÜ£©
ÎÒÃÇÒÔµ±Ç°×îа汾£ºjfreechart_0.9.21.zipΪÀý×Ó½øÐÐ˵Ã÷¡£
¶þ¡¢JFreeChartÅäÖð²×°
1¡¢½âѹjfreechart_0.9.21.zipµ½Ö¸¶¨Î»Öã¬ÆäÖÐsourceÊÇjfreechartµÄÔ´Â룬jfreechart-0.9.21-demo.jar
ÊÇÀý×Ó³ÌÐò£¨¸Ã²¿·ÖÁô¸ø´ó¼Ò×Ô¼ºÈ¥Ñо¿£©
2¡¢ÎªÁËÅäÖóɹ¦£¬ÎÒÃÇÐèÒª¹Ø×¢µÄÎļþÓÐÈçÏÂÈý¸ö£ºjfreechart-0.9.21.jar¡¢lib\jcommon-0.9.6.jar¡¢
lib\gnujaxp.jar
3¡¢Èç¹ûÊÇApplication¿ª·¢£¬°ÑÉÏÊöÈý¸öÎļþ¿½±´µ½%JAVA_HOME%\LIBÖУ¬Í¬Ê±ÔÚ»·¾³±äÁ¿CLASSPATHÖмÓÈë
Èç¹ûÊÇWEB¿ª·¢£¬ÒÔTOMCATÖеÄÒ»¸öWEBÏîÄ¿TESTΪÀý×Ó˵Ã÷£º
°ÑÉÏÊöÈý¸öÎļþ¿½±´µ½TEST\WEB-INF\LIBÖУ¬È»ºóÐÞ¸ÄTEST\WEB-INF\web.xmlÎļþ£¬ÔÚÆäÖмÓÈëÈçÏ´úÂ룺
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>
ÖÁ´ËjfreechartµÄÅäÖþÍÍê³ÉÁË£¬ÏÂÃæ¾Í¿ÉÒÔ½øÐÐjfreechartµÄ¿ª·¢ÁË¡£ÕâÀïÖµµÃÌá³öµÄÊÇjfreechartµÄÀà
½á¹¹Éè¼ÆÇ°ºó¼æÈÝÐÔ²»ÊǺܺ㬲»Í¬°æ±¾µÄjfreechartÖÐÀà¿â½á¹¹¿ÉÄܲ»Ò»Ñù£¬ÓÐʱºò¿ÉÄÜÐèÒª²éÔ´Âë¡£Èç¹û
ÊÇÖÐÎÄÏÔʾµÄʱºò¿ÉÄÜÒÀ¾Ý¹Û¸ÐÐèÒª¸Ä±äÔ´ÂëµÄ×ÖÌ壬²»¹ýÎÒ¸öÈ˾õµÃÕâ¸ö°æ±¾±ÈÒÔǰ°æ±¾ÒªºÃһЩ¡£
Èý¡¢JFreeChart¹¦ÄܽéÉÜ
JFreeChartĿǰÊÇ×îºÃµÄjavaͼÐνâ¾ö·½°¸£¬»ù±¾Äܹ»½â¾öĿǰµÄͼÐη½ÃæµÄÐèÇó£¬Ö÷Òª°üÀ¨Èçϼ¸¸ö·½Ã棺
pie charts (2D and 3D)£º±ýͼ£¨Æ½ÃæºÍÁ¢Ì壩
bar charts (regular and stacked, with an optional 3D effect)£ºÖù״ͼ
line and area charts£ºÇúÏßͼ
scatter plots and bubble charts
time series, high/low/open/close charts and candle stick charts£ºÊ±Ðòͼ
combination charts£º¸´ºÏͼ
Pareto charts
Gantt charts£º¸ÊÌØÍ¼
wind plots, meter charts and symbol charts
wafer map charts
(̬ͼ±í,±ýͼ(¶þάºÍÈýά) , Öù״ͼ (ˮƽ,´¹Ö±),Ïßͼ,µãͼ,ʱ¼ä±ä»¯Í¼,¸ÊÌØÍ¼, ¹ÉƱÐÐÇéͼ,»ìºÍͼ, ζȼÆÍ¼, ¿Ì¶ÈͼµÈ³£ÓÃÉÌÓÃͼ±í)
ͼÐοÉÒÔµ¼³ö³ÉPNGºÍJPEG¸ñʽ£¬Í¬Ê±»¹¿ÉÒÔÓëPDFºÍEXCEL¹ØÁª
JFreeChartºËÐÄÀà¿â½éÉÜ£º
Ñо¿jfreechartÔ´Âë·¢ÏÖÔ´ÂëµÄÖ÷ÒªÓÉÁ½¸ö´óµÄ°ü×é³É£º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:ÓÃÓÚÉú³ÉͼÏóµÄ°ïÖúÌáʾ£¬²»Í¬ÀàÐÍͼ±í¶ÔÓ¦²»Í¬ÀàÐ͵Ť¾ßÌáʾÀà
ËÄ¡¢JFreeChart¿ª·¢£¨Application/Applet£©
1¡¢pie charts£¬´úÂëÈçÏÂ
/**
* Description:This application is the first jfreechart
* authort:лĪ·æ
* Datetime:20058-02-11
*/
package demo;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.data.general.DefaultPieDataset;
public class FirstJFreeChart {
public FirstJFreeChart() {
}
public static void main(String[] args){
DefaultPieDataset dpd = new DefaultPieDataset();
dpd.setValue("¹ÜÀíÈËÔ±",25);
dpd.setValue("Êг¡ÈËÔ±",25);
dpd.setValue("¿ª·¢ÈËÔ±",45);
dpd.setValue("ÆäËûÈËÔ±",5);
//Create JFreeChart object
//²ÎÊý¿ÉÒԲ鿴ԴÂë
JFreeChart pieChart = ChartFactory.createPieChart("CityInfoPort¹«Ë¾×éÖ¯¼Ü¹¹Í¼",dpd,true,true,false);
ChartFrame pieFrame = new ChartFrame("CityInfoPort¹«Ë¾×éÖ¯¼Ü¹¹Í¼",pieChart);
pieFrame.pack();
pieFrame.setVisible(true);
}
}
ÉÏÃæÀý×Ó¿ÉÒÔ½øÒ»²½¸Ä½ø£¬ÈçÏ£º
/**
* Description:This application is the first jfreechart
* authort:лĪ·æ
* Datetime:20058-02-11
*/
package com.cityinforport.demo;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import java.awt.Font;
import javax.swing.*;
public class FirstJFreeChart extends ApplicationFrame {
//¹¹Ô캯Êý
public FirstJFreeChart(String s){
super(s);
setContentPane(createDemoPanel());
}
public static void main(String[] args){
FirstJFreeChart fjc = new FirstJFreeChart("CityInfoPort¹«Ë¾×éÖ¯¼Ü¹¹Í¼");
fjc.pack();
RefineryUtilities.centerFrameOnScreen(fjc);
fjc.setVisible(true);
}
//Éú³É±ýͼÊý¾Ý¼¯¶ÔÏó
public static PieDataset createDataset(){
DefaultPieDataset defaultpiedataset = new DefaultPieDataset();
defaultpiedataset.setValue("¹ÜÀíÈËÔ±",10.02D);
defaultpiedataset.setValue("Êг¡ÈËÔ±",20.23D);
defaultpiedataset.setValue("¿ª·¢ÈËÔ±",60.02D);
defaultpiedataset.setValue("OEMÈËÔ±",10.02D);
defaultpiedataset.setValue("ÆäËûÈËÔ±",5.11D);
return defaultpiedataset;
}
//Éú³Éͼ±íÖ÷¶ÔÏóJFreeChart
public static JFreeChart createChart(PieDataset piedataset){
//¶¨Òåͼ±í¶ÔÏó
JFreeChart jfreechart = ChartFactory.createPieChart("CityInfoPort¹«Ë¾×éÖ¯¼Ü¹¹Í¼",piedataset,true,true,false);
//»ñµÃͼ±íÏÔʾ¶ÔÏó
PiePlot pieplot = (PiePlot)jfreechart.getPlot();
//ÉèÖÃͼ±í±êÇ©×ÖÌå
pieplot.setLabelFont(new Font("SansSerif",Font.BOLD,12));
pieplot.setNoDataMessage("No data available");
pieplot.setCircular(true);
pieplot.setLabelGap(0.01D);//¼ä¾à
return jfreechart;
}
//Éú³ÉÏÔʾͼ±íµÄÃæ°å
public static JPanel createDemoPanel(){
JFreeChart jfreechart = createChart(createDataset());
return new ChartPanel(jfreechart);
}
}