新彩天欢迎您!
幻海优品

JFreeChart - 折线图

折线图或折线图将信息显示为由直线段连接的一系列数据点(标记).折线图显示数据如何以相等的时间频率变化.

本章演示了如何使用JFreeChart从给定的业务数据集创建折线图./p>

商业数据

以下示例绘制折线图,以显示从1970年开始的不同年份开设的学校数量的趋势.

给定数据如下<

学校数量
197015
198030
199060
2000120
2013240
2014300

基于AWT的应用程序

以下是从上面给出的信息创建折线图的代码.此代码可帮助您在任何基于AWT的应用程序中嵌入折线图.

import org.jfree.chart.ChartPanel;import org.jfree.chart.ChartFactory;import org.jfree.chart.JFreeChart;import org.jfree.ui.ApplicationFrame;import org.jfree.ui.RefineryUtilities;import org.jfree.chart.plot.PlotOrientation;import org.jfree.data.category.DefaultCategoryDataset;public class LineChart_AWT extends ApplicationFrame {   public LineChart_AWT( String applicationTitle , String chartTitle ) {      super(applicationTitle);      JFreeChart lineChart = ChartFactory.createLineChart(         chartTitle,         "Years","Number of Schools",         createDataset(),         PlotOrientation.VERTICAL,         true,true,false);               ChartPanel chartPanel = new ChartPanel( lineChart );      chartPanel.setPreferredSize( new java.awt.Dimension( 560 , 367 ) );      setContentPane( chartPanel );   }   private DefaultCategoryDataset createDataset( ) {      DefaultCategoryDataset dataset = new DefaultCategoryDataset( );      dataset.addValue( 15 , "schools" , "1970" );      dataset.addValue( 30 , "schools" , "1980" );      dataset.addValue( 60 , "schools" ,  "1990" );      dataset.addValue( 120 , "schools" , "2000" );      dataset.addValue( 240 , "schools" , "2010" );      dataset.addValue( 300 , "schools" , "2014" );      return dataset;   }      public static void main( String[ ] args ) {      LineChart_AWT chart = new LineChart_AWT(         "School Vs Years" ,         "Numer of Schools vs years");      chart.pack( );      RefineryUtilities.centerFrameOnScreen( chart );      chart.setVisible( true );   }}

让我们将上述Java代码保存在 LineChart_AWT.java 文件中,然后从命令提示编译并运行它为 :

 $ javac LineChart_AWT.java  $ java LineChart_AWT

如果一切正常,它将编译并运行以生成以下折线图 :

JFreeChart折线图

JPEG图像创建

让我们重新编写上面的例子来生成一个JPEG图像命令行.

import java.io.*;import org.jfree.chart.JFreeChart; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.plot.PlotOrientation;import org.jfree.data.category.DefaultCategoryDataset;public class LineChart {   public static void main( String[ ] args ) throws Exception {      DefaultCategoryDataset line_chart_dataset = new DefaultCategoryDataset();      line_chart_dataset.addValue( 15 , "schools" , "1970" );      line_chart_dataset.addValue( 30 , "schools" , "1980" );      line_chart_dataset.addValue( 60 , "schools" , "1990" );      line_chart_dataset.addValue( 120 , "schools" , "2000" );      line_chart_dataset.addValue( 240 , "schools" , "2010" );       line_chart_dataset.addValue( 300 , "schools" , "2014" );      JFreeChart lineChartObject = ChartFactory.createLineChart(         "Schools Vs Years","Year",         "Schools Count",         line_chart_dataset,PlotOrientation.VERTICAL,         true,true,false);      int width = 640;    /* Width of the image */      int height = 480;   /* Height of the image */       File lineChart = new File( "LineChart.jpeg" );       ChartUtilities.saveChartAsJPEG(lineChart ,lineChartObject, width ,height);   }}

让我们将上述Java代码保存在 LineChart.java 文件中,然后从命令提示编译并运行它为 :

$javac LineChart.java  $java LineChart

如果一切正常,它将编译并执行以在当前目录中创建名为 LineChart.jpeg 的JPEG图像文件.

免责声明:以上内容(如有图片或视频亦包括在内)有转载其他网站资源,如有侵权请联系删除