JFreeChart - Wykres kołowy
Na wykresie kołowym długość łuku każdego sektora jest proporcjonalna do ilości, którą reprezentuje. Ten rozdział demonstruje - jak możemy wykorzystać JFreeChart do tworzeniaPie Chart z danego zestawu danych biznesowych.
Dane biznesowe
Poniższy przykład przedstawia sprzedaż mobilną za pomocą wykresu kołowego. Poniżej znajduje się lista różnych marek telefonów komórkowych i ich sprzedaż (liczba jednostek dziennie).
S.Nr | Marki mobilne | Sprzedaż (JEDNOSTKI dziennie) |
---|---|---|
1 | Iphone 5s | 20 |
2 | Samsung Grand | 20 |
3 | MOTO G | 40 |
4 | Nokia Lumia | 10 |
Aplikacja oparta na AWT
Poniżej znajduje się kod do utworzenia wykresu kołowego przy użyciu podanych powyżej informacji. Ten kod pomaga osadzić wykres kołowy w dowolnej aplikacji opartej na AWT.
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class PieChart_AWT extends ApplicationFrame {
public PieChart_AWT( String title ) {
super( title );
setContentPane(createDemoPanel( ));
}
private static PieDataset createDataset( ) {
DefaultPieDataset dataset = new DefaultPieDataset( );
dataset.setValue( "IPhone 5s" , new Double( 20 ) );
dataset.setValue( "SamSung Grand" , new Double( 20 ) );
dataset.setValue( "MotoG" , new Double( 40 ) );
dataset.setValue( "Nokia Lumia" , new Double( 10 ) );
return dataset;
}
private static JFreeChart createChart( PieDataset dataset ) {
JFreeChart chart = ChartFactory.createPieChart(
"Mobile Sales", // chart title
dataset, // data
true, // include legend
true,
false);
return chart;
}
public static JPanel createDemoPanel( ) {
JFreeChart chart = createChart(createDataset( ) );
return new ChartPanel( chart );
}
public static void main( String[ ] args ) {
PieChart_AWT demo = new PieChart_AWT( "Mobile Sales" );
demo.setSize( 560 , 367 );
RefineryUtilities.centerFrameOnScreen( demo );
demo.setVisible( true );
}
}
Zachowajmy powyższy kod Java w PieChart_AWT.java plik, a następnie skompiluj i uruchom go z wiersza polecenia jako -
$javac PieChart_AWT.java
$java PieChart_AWT
Jeśli wszystko jest w porządku, skompiluje się i uruchomi, aby wygenerować następujący wykres kołowy -
Jeśli nie musisz osadzać wykresu w żadnej aplikacji, możesz tworzyć obrazy wykresów w wierszu polecenia. JFreeChart umożliwia zapisywanie obrazów wykresów w formatach JPG lub PNG.
Tworzenie obrazów JPEG
Napiszmy ponownie powyższy przykład, aby wygenerować obraz JPEG z wiersza poleceń. Poniżej znajdują się dwa interfejsy API udostępnione przez bibliotekę JFreeChart, których można użyć do wygenerowania obrazu PNG lub JPEG zgodnie z wymaganiami.
saveChartAsPNG() - API do zapisywania obrazu w formacie PNG.
saveChartAsJPEG() - API do zapisywania obrazu w formacie JPEG.
import java.io.*;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
public class PieChart {
public static void main( String[ ] args ) throws Exception {
DefaultPieDataset dataset = new DefaultPieDataset( );
dataset.setValue("IPhone 5s", new Double( 20 ) );
dataset.setValue("SamSung Grand", new Double( 20 ) );
dataset.setValue("MotoG", new Double( 40 ) );
dataset.setValue("Nokia Lumia", new Double( 10 ) );
JFreeChart chart = ChartFactory.createPieChart(
"Mobile Sales", // chart title
dataset, // data
true, // include legend
true,
false);
int width = 640; /* Width of the image */
int height = 480; /* Height of the image */
File pieChart = new File( "PieChart.jpeg" );
ChartUtilities.saveChartAsJPEG( pieChart , chart , width , height );
}
}
Zachowajmy powyższy kod Java w PieChart.java plik, a następnie skompiluj i uruchom go z wiersza polecenia jako -
$javac PieChart.java
$java PieChart
Jeśli wszystko jest w porządku, skompiluje się i uruchomi, aby utworzyć plik obrazu JPEG o nazwie PieChart.jpeg w twoim bieżącym katalogu.