понеділок, 25 червня 2012 р.

Розділ 4 Використання JFreeChart


4.1 Загальний огляд

Даний розділ надає інформацію для простого вступу до JFreeChart та орієнтована на нових користувачів JFreeChart.

4.2 Створення вашої першої  діаграми
4.2.1 Загальний огляд

Створення діаграм з JFreeChart – це трьох-кроковий процес. Вам необхідно:
•    Створити набір даних (dataset), що міститиме дані для зображення в діаграмі
•    Створити об’єкт JFreeChart, що буде відповідати за промальовування діаграми
•    Намалювати діаграму на певній поверхні (частіше всього це панель на екрані, хоча і не завжди)
Щоб продемонструвати даний процес, ми для прикладу опишемо програму (First.java) що створює кругову діаграму зображену на рисунку 4.1

Рис. 4.1 ­- Кругова діаграма створена з використанням First.java

Кожен з трьох кроків, разом з джерельним кодом описані в наступних секціях.


4.2.2 Дані

Крок перший вимагає створення набору даних для нашої діаграми. Це може бути просто зроблено, використовуючи DefaultPieDataset клас, наступним чином:

// створюємо набір даних...
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("Category 1", 43.2);
dataset.setValue("Category 2", 27.9);
dataset.setValue("Category 3", 79.5);

Зазначте, що JFreeChart може створити кругову діаграму використовуючи дані з будь-якого класу, що реалізовує інтерфейс PieDataset. Клас DefaultPieDataset, використаний вище, надає зручну реалізацію даного інтерфейсу, проте ви можете розробити додаткову реаліцію, якщо хочете[Все це подібне до того як клас Swing – JTable отримує дані через інтерфейс TableModel]

4.2.3 Створення кругової діаграми

Другий крок стосується того, як ми представимо набір даних створений в попередній секції. Нам необхідно створити JFreeChart об’єкт, що може намалювати діаграму, використовуючи дані з нашого набору для діаграми. Ми використаємо ChartFactory клас, таким чином:

// створюємо діаграму...
JFreeChart chart = ChartFactory.createPieChart(
"Sample Pie Chart",
dataset,
true, // legend?
true, // tooltips?
false // URLs?
);


Зазначте, як ми передали посилання на набір даних у метод createPieChart. JFreeChart отримав посилання на даний набір даних, тож тепер JFreeChart може отримати дані, при зображенні даграми.

Діаграма, що створюється нами використовує налаштування по замовчуванню для більшості атрибутів. Існує багато шляхів модифікації зовнішнього вигляду діаграми створеної з JFreeChart, проте в даному прикладі ми використаємо стандартний вигляд.

4.2.4 Вивід діаграми
 
Останнім кроком є зображення діаграми де-небудь. JFreeChart доволі гнучка, щодо місць промальовки діаграми, завдяки використаннню класу Graphics2D.

Так давайте зобразимо діаграму у фреймі на екрані. ChartFrame надає відповідний механізм (ChartPanel) для відображення діаграм:

// create and display a frame...
ChartFrame frame = new ChartFrame("Test", chart);
frame.pack();
frame.setVisible(true);

І на цьому все….

4.2.5 Повний код програми

Тут наведена повний текст програми, тож ви можете побачити, які пакети необхідно імпортувати і порядок розташування фрагментів коду поданих в попередніх секціях:

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
public class First {
/**
* The starting point for the demo.
*
* @param args ignored.
*/
public static void main(String[] args) {
 // create a dataset...
 DefaultPieDataset dataset = new DefaultPieDataset();
 dataset.setValue("Category 1", 43.2);
 dataset.setValue("Category 2", 27.9);
 dataset.setValue("Category 3", 79.5);
 // create a chart...
JFreeChart chart = ChartFactory.createPieChart(
  "Sample Pie Chart",
  dataset,
  true, // legend?
  true, // tooltips?
  false // URLs?
);
 // create and display a frame...
 ChartFrame frame = new ChartFrame("First", chart);
 frame.pack();
 frame.setVisible(true);
 }
}


Сподіваємося це переконало вас, що створювати і зображати графіки з JFreeChart нескладно. Звичайно, що тут є ще багато чого для освоєння…


The JFreeChart Developer Guide Version 1.0.9

Переклад volodimirg

Немає коментарів:

Дописати коментар