JFreeChart একটি শক্তিশালী লাইব্রেরি যা ডেটা ভিজ্যুয়ালাইজেশনের জন্য ব্যবহৃত হয়। চার্টের জন্য ডেটা প্রদর্শন করতে, সাধারণত Dataset ব্যবহার করা হয়, যেটি বিভিন্ন ধরনের হতে পারে, যেমন CategoryDataset, XYDataset, বা TimeSeriesDataset। যখন আপনি একটি কাস্টম ডেটাসেট তৈরি করতে চান, তখন আপনাকে একটি Dataset কাস্টমাইজ করতে হবে যা আপনার প্রয়োজন অনুযায়ী ডেটা প্রদান করবে।
এই গাইডে, আমরা দেখব কিভাবে JFreeChart দিয়ে একটি Custom Dataset তৈরি করা যায় এবং এটি চার্টে প্রদর্শন করা যায়।
1. Custom Dataset কী?
Custom Dataset হল এমন একটি ডেটাসেট যা আপনি নিজের প্রয়োজন অনুসারে কাস্টমাইজ করে তৈরি করেন। এটি আপনাকে একটি চার্টের জন্য নির্দিষ্ট ডেটা পয়েন্ট বা মান প্রদান করতে সাহায্য করে। JFreeChart বিভিন্ন ধরনের ডেটাসেট সাপোর্ট করে, তবে আপনি DefaultCategoryDataset বা XYSeriesCollection ইত্যাদি ব্যবহার করে কাস্টম ডেটাসেট তৈরি করতে পারেন।
2. Custom Dataset তৈরি করার উদাহরণ
এখানে আমরা একটি সাধারণ Bar Chart এবং Line Chart তৈরি করার উদাহরণ দেখাবো, যেখানে কাস্টম ডেটাসেট ব্যবহার করা হবে।
উদাহরণ 1: Custom Dataset for Bar Chart
Bar Chart তৈরি করতে আমরা DefaultCategoryDataset ব্যবহার করব, যেখানে কিছু কাস্টম ডেটা যোগ করা হবে।
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;
import javax.swing.*;
public class CustomDatasetBarChartExample {
public static JPanel createChartPanel() {
// Custom Dataset তৈরি করা
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
// কাস্টম ডেটা যোগ করা (Category এবং Value)
dataset.addValue(10, "Series1", "Jan");
dataset.addValue(20, "Series1", "Feb");
dataset.addValue(30, "Series1", "Mar");
dataset.addValue(40, "Series1", "Apr");
// Bar Chart তৈরি করা
JFreeChart chart = ChartFactory.createBarChart(
"Monthly Sales", // Chart Title
"Month", // X-Axis Label
"Sales Amount", // Y-Axis Label
dataset, // Dataset
org.jfree.chart.plot.PlotOrientation.VERTICAL, // Plot Orientation
true, // Legend
true, // Tooltips
false // URLs
);
// Chart Panel তৈরি এবং রিটার্ন করা
return new ChartPanel(chart);
}
public static void main(String[] args) {
// JFrame তৈরি করা
JFrame frame = new JFrame("Custom Dataset Bar Chart Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(createChartPanel());
frame.pack();
frame.setVisible(true);
}
}
ব্যাখ্যা:
- DefaultCategoryDataset ব্যবহার করা হয়েছে কাস্টম ডেটা যোগ করার জন্য। এখানে প্রতি মাসে বিক্রয়ের পরিমাণ যোগ করা হয়েছে।
- ChartFactory.createBarChart() মেথডের মাধ্যমে একটি Bar Chart তৈরি করা হয়েছে।
- ChartPanel ব্যবহার করে গ্রাফ GUI তে প্রদর্শন করা হয়েছে।
উদাহরণ 2: Custom Dataset for Line Chart
এবার আমরা Line Chart তৈরি করব এবং XYSeriesCollection ব্যবহার করে কাস্টম ডেটাসেট তৈরি করব।
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import javax.swing.*;
public class CustomDatasetLineChartExample {
public static JPanel createChartPanel() {
// Custom Dataset তৈরি করা
XYSeries series = new XYSeries("Temperature Data");
// কাস্টম ডেটা যোগ করা (X এবং Y মান)
series.add(1, 30);
series.add(2, 35);
series.add(3, 40);
series.add(4, 45);
series.add(5, 50);
// XYSeriesCollection তৈরি করা
XYSeriesCollection dataset = new XYSeriesCollection(series);
// Line Chart তৈরি করা
JFreeChart chart = ChartFactory.createXYLineChart(
"Temperature Over Time", // Chart Title
"Time (Days)", // X-Axis Label
"Temperature (°C)", // Y-Axis Label
dataset, // Dataset
org.jfree.chart.plot.PlotOrientation.VERTICAL, // Plot Orientation
true, // Legend
true, // Tooltips
false // URLs
);
// Chart Panel তৈরি এবং রিটার্ন করা
return new ChartPanel(chart);
}
public static void main(String[] args) {
// JFrame তৈরি করা
JFrame frame = new JFrame("Custom Dataset Line Chart Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(createChartPanel());
frame.pack();
frame.setVisible(true);
}
}
ব্যাখ্যা:
- XYSeries ব্যবহার করে কাস্টম ডেটাসেট তৈরি করা হয়েছে, যেখানে আমরা প্রতিটি দিনের তাপমাত্রার ডেটা যোগ করেছি।
- XYSeriesCollection ডেটাসেট হিসেবে কাজ করছে।
- ChartFactory.createXYLineChart() মেথড ব্যবহার করে একটি Line Chart তৈরি করা হয়েছে।
3. Custom Dataset তৈরি করার জন্য অন্যান্য পদ্ধতি
আপনি যদি আরও কাস্টম ডেটাসেট তৈরি করতে চান, তবে CategoryDataset, XYDataset, বা TimeSeriesDataset ব্যবহার করে বিভিন্ন ধরনের ডেটা সংগ্রহ এবং উপস্থাপন করতে পারেন। নিম্নলিখিত কিছু পদ্ধতি ব্যবহার করে কাস্টম ডেটাসেট তৈরি করা যেতে পারে:
3.1. CategoryDataset ব্যবহার
CategoryDataset সাধারণত Bar Chart এবং Line Chart এর জন্য ব্যবহৃত হয়, যেখানে প্রতিটি ক্যাটেগরির জন্য একটি মান সংরক্ষণ করা হয়। আপনি DefaultCategoryDataset বা CategoryDataset এর ইনপুট হিসেবে কাস্টম ডেটা যোগ করতে পারেন।
3.2. XYDataset ব্যবহার
XYDataset ব্যবহার করে আপনি XYChart (যেমন, Scatter Plot বা Line Chart) তৈরি করতে পারেন, যেখানে X এবং Y এক্সিস এর জন্য নির্দিষ্ট মান থাকবে।
4. কাস্টম ডেটাসেট কনফিগারেশন কাস্টমাইজেশন
কাস্টম ডেটাসেট তৈরি করার পর আপনি চার্টের কিছু কাস্টমাইজেশন করতে পারেন, যেমন:
Line Style এবং Color পরিবর্তন:
plot.getRenderer().setSeriesPaint(0, Color.RED); // Set line color to red plot.getRenderer().setSeriesStroke(0, new BasicStroke(3.0f)); // Set line thicknessAxis কাস্টমাইজ:
plot.getDomainAxis().setLabel("Month"); plot.getRangeAxis().setLabel("Sales Amount");Legend Position পরিবর্তন:
chart.getLegend().setPosition(RectangleEdge.BOTTOM);
সারাংশ
JFreeChart এর মাধ্যমে Custom Dataset তৈরি করা একটি শক্তিশালী এবং সহজ পদ্ধতি, যা আপনাকে আপনার প্রয়োজন অনুযায়ী ডেটা সংগ্রহ এবং উপস্থাপন করতে সহায়তা করে। আপনি DefaultCategoryDataset এবং XYSeriesCollection এর মাধ্যমে কাস্টম ডেটাসেট তৈরি করতে পারেন এবং সেই ডেটা দিয়ে বিভিন্ন ধরনের চার্ট যেমন Bar Chart, Line Chart, এবং Scatter Plot তৈরি করতে পারেন। JFreeChart দিয়ে আপনি আপনার ডেটার ভিজ্যুয়াল রিপ্রেজেন্টেশন কাস্টমাইজ করে আরও কার্যকরী এবং স্পষ্ট চার্ট তৈরি করতে পারবেন।
Read more