JFreeChart দিয়ে Multiple Charts একত্রিত করে একটি Dashboard তৈরি করা সম্ভব, যা একাধিক চার্টের মাধ্যমে ব্যবহারকারীকে ডেটার বিভিন্ন দৃষ্টিকোণ উপস্থাপন করতে সাহায্য করে। একটি ড্যাশবোর্ডে বিভিন্ন ধরনের চার্ট, যেমন Bar Charts, Line Charts, Pie Charts, ইত্যাদি একসাথে রাখা হয়, যা ডেটার সম্পূর্ণ পরিসর তুলে ধরে।
এখানে আমরা দেখব কীভাবে JFreeChart ব্যবহার করে একটি Dashboard তৈরি করা যায় যেখানে একাধিক চার্ট প্রদর্শিত হবে।
1. Multiple JFreeChart তৈরি করা
একটি ড্যাশবোর্ডে সাধারণত একাধিক চার্ট থাকে। JFreeChart এ একাধিক চার্ট তৈরি করতে আপনি আলাদা আলাদা JFreeChart অবজেক্ট তৈরি করবেন এবং সেগুলোকে একটি JPanel বা JTabbedPane-এ যোগ করবেন।
এখানে আমরা তিনটি চার্ট তৈরি করব:
- Bar Chart: বিক্রয় ডেটা
- Line Chart: মাসিক প্রবণতা
- Pie Chart: বাজার শেয়ার
2. ড্যাশবোর্ডে Multiple Charts একত্রিত করা
উদাহরণ: Multiple Charts Dashboard তৈরি করা
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.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import javax.swing.*;
import java.awt.*;
public class DashboardExample {
public static void main(String[] args) {
// ১. Bar Chart Dataset তৈরি করা
DefaultCategoryDataset barDataset = new DefaultCategoryDataset();
barDataset.addValue(10, "Sales", "January");
barDataset.addValue(20, "Sales", "February");
barDataset.addValue(30, "Sales", "March");
JFreeChart barChart = ChartFactory.createBarChart(
"Sales Chart", // Chart title
"Month", // X-Axis label
"Sales", // Y-Axis label
barDataset, // Dataset
PlotOrientation.VERTICAL, // Chart orientation
true, // Legend
true, // Tooltips
false // URLs
);
// ২. Line Chart Dataset তৈরি করা
XYSeries series = new XYSeries("Monthly Growth");
series.add(1, 10);
series.add(2, 15);
series.add(3, 25);
XYSeriesCollection lineDataset = new XYSeriesCollection(series);
JFreeChart lineChart = ChartFactory.createXYLineChart(
"Monthly Growth", // Chart title
"Month", // X-Axis label
"Growth", // Y-Axis label
lineDataset, // Dataset
PlotOrientation.VERTICAL, // Chart orientation
true, // Legend
true, // Tooltips
false // URLs
);
// ৩. Pie Chart Dataset তৈরি করা
DefaultPieDataset pieDataset = new DefaultPieDataset();
pieDataset.setValue("Product A", 50);
pieDataset.setValue("Product B", 30);
pieDataset.setValue("Product C", 20);
JFreeChart pieChart = ChartFactory.createPieChart(
"Market Share", // Chart title
pieDataset, // Dataset
true, // Legend
true // Tooltips
);
// চার্ট প্যানেল তৈরি করা
ChartPanel barPanel = new ChartPanel(barChart);
ChartPanel linePanel = new ChartPanel(lineChart);
ChartPanel piePanel = new ChartPanel(pieChart);
// JPanel তৈরি করা এবং চার্ট প্যানেলগুলো যোগ করা
JPanel dashboardPanel = new JPanel();
dashboardPanel.setLayout(new GridLayout(1, 3)); // তিনটি কলামে বিভক্ত
dashboardPanel.add(barPanel); // Bar Chart যোগ করা
dashboardPanel.add(linePanel); // Line Chart যোগ করা
dashboardPanel.add(piePanel); // Pie Chart যোগ করা
// JFrame তৈরি করা এবং Dashboard দেখানো
JFrame frame = new JFrame("Multiple Charts Dashboard");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(dashboardPanel);
frame.pack();
frame.setVisible(true);
}
}
ব্যাখ্যা:
- Bar Chart:
DefaultCategoryDatasetব্যবহার করে বার চার্ট তৈরি করা হয়েছে, যেখানে Month (মাস) এবং Sales (বিক্রয়) সম্পর্কিত ডেটা প্লট করা হয়েছে। - Line Chart:
XYSeriesব্যবহার করে একটি লাইন চার্ট তৈরি করা হয়েছে, যেখানে মাসিক প্রবণতা দেখানো হয়েছে। - Pie Chart:
DefaultPieDatasetব্যবহার করে একটি পাই চার্ট তৈরি করা হয়েছে, যা বাজার শেয়ারের ডেটা দেখায়। - Dashboard: সব তিনটি চার্টকে একটি JPanel এ GridLayout ব্যবহার করে সজ্জিত করা হয়েছে। এখানে GridLayout(1, 3) ব্যবহার করা হয়েছে যাতে সব তিনটি চার্ট একসাথে এক লাইনে প্রদর্শিত হয়।
3. Dashboard Layout এবং Customization
আপনি চাইলে ড্যাশবোর্ডের লেআউট এবং চার্টের ডিজাইন কাস্টমাইজ করতে পারেন।
উদাহরণ: Dashboard Layout কাস্টমাইজ করা
// Layout customizations
dashboardPanel.setLayout(new BoxLayout(dashboardPanel, BoxLayout.Y_AXIS)); // Vertically stacked layout
dashboardPanel.add(barPanel);
dashboardPanel.add(linePanel);
dashboardPanel.add(piePanel);
এখানে, BoxLayout ব্যবহার করে চার্টগুলোকে উল্লম্বভাবে সাজানো হয়েছে। এছাড়া আপনি BorderLayout অথবা FlowLayout ব্যবহার করেও বিভিন্ন ড্যাশবোর্ড লেআউট তৈরি করতে পারেন।
4. Advanced Dashboard Functionalities
ড্যাশবোর্ডে অন্যান্য কার্যকলাপ যেমন ডেটা ফিল্টারিং, ইন্টারঅ্যাকটিভ ফিচার যোগ করা যেতে পারে। যেমন:
- Data Filtering: আপনি ডেটা ফিল্টার করার জন্য ড্রপডাউন মেনু বা বোতাম ব্যবহার করতে পারেন, যার মাধ্যমে ব্যবহারকারী চার্টে প্রদর্শিত ডেটা পরিবর্তন করতে পারবেন।
- Real-time Data: যদি আপনার ডেটা লাইভ হয়, আপনি real-time updates এবং data streaming এর জন্য ইভেন্ট লিসেনার ব্যবহার করতে পারেন।
- User Input: ব্যবহারকারী ইনপুটের মাধ্যমে ডেটা আপডেট করা বা চার্টের স্টাইল পরিবর্তন করার জন্য কাস্টম কন্ট্রোল যোগ করা।
সারসংক্ষেপ
JFreeChart দিয়ে Multiple Charts একত্রিত করে একটি Dashboard তৈরি করা খুবই সহজ এবং কার্যকরী। আপনি Bar Chart, Line Chart, Pie Chart এবং অন্যান্য ধরনের চার্ট একসাথে প্রদর্শন করে একাধিক ডেটা ভিউ প্রদর্শন করতে পারেন। একাধিক চার্টের মাধ্যমে ব্যবহারকারীদের ডেটার বিভিন্ন দৃষ্টিকোণ দেখতে সাহায্য করা যায়, এবং ড্যাশবোর্ডের লেআউট কাস্টমাইজ করার মাধ্যমে আপনি আরও ইন্টারঅ্যাকটিভ এবং ইউজার-বান্ধব ড্যাশবোর্ড তৈরি করতে পারেন।
Read more