JFreeChart - แผนภูมิเส้น
แผนภูมิเส้นหรือกราฟเส้นแสดงข้อมูลเป็นชุดของจุดข้อมูล (เครื่องหมาย) ที่เชื่อมต่อกันด้วยส่วนของเส้นตรง แผนภูมิเส้นแสดงให้เห็นว่าข้อมูลเปลี่ยนแปลงอย่างไรที่ความถี่เวลาเท่ากัน
บทนี้แสดงให้เห็นถึงวิธีที่เราสามารถใช้ JFreeChart เพื่อสร้าง Line Chart จากชุดข้อมูลธุรกิจที่กำหนด
ข้อมูลธุรกิจ
ตัวอย่างต่อไปนี้วาดแผนภูมิเส้นเพื่อแสดงแนวโน้มของจำนวนโรงเรียนที่เปิดในปีต่างๆเริ่มตั้งแต่ปี 1970
ให้ข้อมูลดังนี้ -
ปี | จำนวนโรงเรียน |
---|---|
พ.ศ. 2513 | 15 |
พ.ศ. 2523 | 30 |
พ.ศ. 2533 | 60 |
พ.ศ. 2543 | 120 |
2556 | 240 |
พ.ศ. 2557 | 300 |
แอปพลิเคชันที่ใช้ 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
หากทุกอย่างเรียบร้อยก็จะคอมไพล์และรันเพื่อสร้าง Line Graph ต่อไปนี้ -
การสร้างภาพ 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
หากทุกอย่างเรียบร้อยดีก็จะรวบรวมและดำเนินการเพื่อสร้างไฟล์ภาพ JPEG ที่ชื่อ LineChart.jpeg ในไดเรกทอรีปัจจุบันของคุณ