JFreeChart একটি শক্তিশালী লাইব্রেরি যা Java ডেভেলপারদের ডেটা ভিজুয়ালাইজেশনের জন্য বিভিন্ন ধরনের চার্ট তৈরি করতে সাহায্য করে। Waterfall Chart এবং Bubble Chart দুটি বিশেষ ধরনের চার্ট যা ডেটার ট্রেন্ড বা পার্থক্য প্রদর্শন করতে ব্যবহৃত হয়। এখানে আমরা JFreeChart ব্যবহার করে এই দুটি চার্ট কিভাবে তৈরি করা যায়, তা দেখব।
১. Waterfall Chart তৈরি করা
Waterfall Chart সাধারণত সিকোয়েন্স অনুসারে ডেটার পরিবর্তন বা পার্থক্য প্রদর্শন করতে ব্যবহৃত হয়। এটি একে অপরের উপর ভিত্তি করে বার বা কলামকে যুক্ত করে দেখায়। Waterfall Chart ব্যবসায়িক প্রেক্ষাপটে যেমন আয়-ব্যয়ের হিসাব বা কোনো সিরিজের বৃদ্ধি/হ্রাস দেখাতে ব্যবহৃত হয়।
JFreeChart সরাসরি Waterfall Chart তৈরি করার জন্য কোনো বিল্ট-ইন ফিচার প্রদান না করলেও, আমরা Bar Chart ব্যবহার করে এটি তৈরি করতে পারি, যেখানে বিশেষভাবে ধাপে ধাপে বার যোগ করে Waterfall Chart ইমিটেট করা হয়।
Waterfall Chart তৈরি করার উদাহরণ:
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;
import javax.swing.*;
import java.awt.*;
public class WaterfallChartExample {
public static void main(String[] args) {
// ডেটাসেট তৈরি করা
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
// বার যোগ করা (উল্লেখযোগ্য বৃদ্ধি এবং হ্রাস)
dataset.addValue(100, "Amount", "Start");
dataset.addValue(120, "Amount", "Increase 1");
dataset.addValue(100, "Amount", "Decrease 1");
dataset.addValue(150, "Amount", "Increase 2");
dataset.addValue(130, "Amount", "Decrease 2");
dataset.addValue(200, "Amount", "Final");
// Waterfall Chart তৈরি (Bar Chart স্টাইল)
JFreeChart chart = ChartFactory.createBarChart(
"Waterfall Chart Example", // চার্টের শিরোনাম
"Category", // X-Axis লেবেল
"Amount", // Y-Axis লেবেল
dataset, // ডেটাসেট
org.jfree.chart.plot.PlotOrientation.VERTICAL, // প্লট অরিয়েন্টেশন
true, // লেজেন্ড
true, // টুলটিপস
false // URL
);
// ChartPanel তৈরি করা
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
// JFrame এ চার্ট দেখানো
JFrame frame = new JFrame();
frame.setContentPane(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
এখানে, DefaultCategoryDataset ব্যবহার করা হয়েছে এবং সিরিজের মধ্যে বারগুলো যোগ করে Waterfall Chart তৈরি করা হয়েছে।
২. Bubble Chart তৈরি করা
Bubble Chart হল একটি ধরণের XY Chart যা তিনটি ভেরিয়েবল দেখাতে ব্যবহৃত হয়। এই চার্টে X-Axis এবং Y-Axis এর জন্য দুটি ভেরিয়েবল থাকে, এবং তৃতীয় ভেরিয়েবল দ্বারা বুদবুদ (Bubble) আকার নির্ধারিত হয়। এটি একটি নির্দিষ্ট পয়েন্টের আকারের মাধ্যমে তৃতীয় ভেরিয়েবলের মান উপস্থাপন করে।
Bubble Chart তৈরি করার উদাহরণ:
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.*;
import java.awt.*;
public class BubbleChartExample {
public static void main(String[] args) {
// XYSeries তৈরি করা (X, Y এবং Bubble size)
XYSeries series = new XYSeries("Bubble Data");
series.add(1, 1, 50); // X=1, Y=1, Bubble size=50
series.add(2, 4, 80); // X=2, Y=4, Bubble size=80
series.add(3, 9, 120); // X=3, Y=9, Bubble size=120
series.add(4, 16, 200); // X=4, Y=16, Bubble size=200
series.add(5, 25, 300); // X=5, Y=25, Bubble size=300
// XYSeriesCollection তৈরি করা
XYSeriesCollection dataset = new XYSeriesCollection(series);
// Bubble Chart তৈরি করা
JFreeChart chart = ChartFactory.createBubbleChart(
"Bubble Chart Example", // Chart title
"X-Axis", // X-Axis label
"Y-Axis", // Y-Axis label
dataset, // Dataset
org.jfree.chart.plot.PlotOrientation.VERTICAL, // Plot orientation
true, // Legend
true, // Tooltips
false // URL
);
// ChartPanel তৈরি করা
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
// JFrame এ চার্ট দেখানো
JFrame frame = new JFrame();
frame.setContentPane(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
এই কোডটি একটি Bubble Chart তৈরি করবে যেখানে:
- X এবং Y অ্যাক্সিসে ভ্যালু প্রদর্শিত হবে।
- তৃতীয় ভ্যালু (Bubble Size) দ্বারা বুদবুদ আকার নির্ধারিত হবে।
সারসংক্ষেপ
JFreeChart ব্যবহার করে Waterfall Chart এবং Bubble Chart তৈরি করা সম্ভব, যদিও Waterfall Chart এর জন্য কিছুটা কাস্টমাইজেশন প্রয়োজন। Waterfall Chart সাধারণত বার চার্টের মাধ্যমে সিকোয়েন্স ভিত্তিক ডেটা পরিবর্তন বা পার্থক্য দেখাতে ব্যবহৃত হয়, এবং Bubble Chart তে X, Y, এবং Bubble Size দিয়ে একটি পয়েন্টের আকারের মাধ্যমে তৃতীয় ভেরিয়েবল উপস্থাপন করা হয়। JFreeChart এ এই ধরনের চার্ট তৈরির জন্য ডেটাসেট এবং সিরিজ যথাযথভাবে কনফিগার করা প্রয়োজন।
Read more