В этой главе показано, как вы можете использовать JFreeChart для создания гистограммы из заданного набора бизнес-данных.
Гистограмма использует различные ориентационные (горизонтальные или вертикальные) столбцы, чтобы показать сравнения в различных категориях. Одна ось (ось домена) диаграммы показывает конкретный сравниваемый домен, а другая ось (ось диапазона) представляет дискретные значения.
Бизнес-данные
В следующем примере показана статистика различных автомобилей с помощью гистограммы. Ниже приведен список марок автомобилей с их различными характеристиками, которые мы покажем с помощью гистограммы.
Автомобиль | скорость | Рейтинг пользователей | Миледж | безопасности |
---|---|---|---|---|
указ | 1,0 | 3.0 | 5.0 | 5.0 |
Audi | 5.0 | 6,0 | 10,0 | 4,0 |
брод | 4,0 | 2,0 | 3.0 | 6,0 |
Приложение на основе AWT
Ниже приведен код для создания гистограммы из приведенной выше информации. Этот код помогает вам встроить гистограмму в любое приложение на основе AWT.
import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; public class BarChart_AWT extends ApplicationFrame { public BarChart_AWT( String applicationTitle , String chartTitle ) { super( applicationTitle ); JFreeChart barChart = ChartFactory.createBarChart( chartTitle, "Category", "Score", createDataset(), PlotOrientation.VERTICAL, true, true, false); ChartPanel chartPanel = new ChartPanel( barChart ); chartPanel.setPreferredSize(new java.awt.Dimension( 560 , 367 ) ); setContentPane( chartPanel ); } private CategoryDataset createDataset( ) { final String fiat = "FIAT"; final String audi = "AUDI"; final String ford = "FORD"; final String speed = "Speed"; final String millage = "Millage"; final String userrating = "User Rating"; final String safety = "safety"; final DefaultCategoryDataset dataset = new DefaultCategoryDataset( ); dataset.addValue( 1.0 , fiat , speed ); dataset.addValue( 3.0 , fiat , userrating ); dataset.addValue( 5.0 , fiat , millage ); dataset.addValue( 5.0 , fiat , safety ); dataset.addValue( 5.0 , audi , speed ); dataset.addValue( 6.0 , audi , userrating ); dataset.addValue( 10.0 , audi , millage ); dataset.addValue( 4.0 , audi , safety ); dataset.addValue( 4.0 , ford , speed ); dataset.addValue( 2.0 , ford , userrating ); dataset.addValue( 3.0 , ford , millage ); dataset.addValue( 6.0 , ford , safety ); return dataset; } public static void main( String[ ] args ) { BarChart_AWT chart = new BarChart_AWT("Car Usage Statistics", "Which car do you like?"); chart.pack( ); RefineryUtilities.centerFrameOnScreen( chart ); chart.setVisible( true ); } }
Давайте сохраним приведенный выше Java-код в файле BarChart_AWT.java , а затем скомпилируем и запустим его из команды, отображаемой как —
$javac BarChar_AWT.java $java BarChart_AWT
Если все в порядке, он скомпилируется и запустится, чтобы сгенерировать следующую гистограмму —
Создание изображения JPEG
Давайте перепишем приведенный выше пример, чтобы сгенерировать изображение JPEG из командной строки.
import java.io.*; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.chart.ChartUtilities; public class BarChart { public static void main( String[ ] args )throws Exception { final String fiat = "FIAT"; final String audi = "AUDI"; final String ford = "FORD"; final String speed = "Speed"; final String millage = "Millage"; final String userrating = "User Rating"; final String safety = "safety"; final DefaultCategoryDataset dataset = new DefaultCategoryDataset( ); dataset.addValue( 1.0 , fiat , speed ); dataset.addValue( 3.0 , fiat , userrating ); dataset.addValue( 5.0 , fiat , millage ); dataset.addValue( 5.0 , fiat , safety ); dataset.addValue( 5.0 , audi , speed ); dataset.addValue( 6.0 , audi , userrating ); dataset.addValue( 10.0 , audi , millage ); dataset.addValue( 4.0 , audi , safety ); dataset.addValue( 4.0 , ford , speed ); dataset.addValue( 2.0 , ford , userrating ); dataset.addValue( 3.0 , ford , millage ); dataset.addValue( 6.0 , ford , safety ); JFreeChart barChart = ChartFactory.createBarChart( "CAR USAGE STATIStICS", "Category", "Score", dataset,PlotOrientation.VERTICAL, true, true, false); int width = 640; /* Width of the image */ int height = 480; /* Height of the image */ File BarChart = new File( "BarChart.jpeg" ); ChartUtilities.saveChartAsJPEG( BarChart , barChart , width , height ); } }
Давайте сохраним указанный выше Java-код в файле BarChart.java, а затем скомпилируем и запустим его из команды, отображаемой как —
$javac BarChart.java $java BarChart
Если все в порядке, он скомпилируется и запустится для создания файла изображения JPEG с именем BarChart.jpeg в вашем текущем каталоге.