JFreeChart-এ একাধিক Chart Types-এর সংমিশ্রণ করার মাধ্যমে বিভিন্ন ডেটার জন্য একটি শক্তিশালী ভিজুয়াল উপস্থাপনা তৈরি করা যায়। একাধিক চার্ট টাইপের সংমিশ্রণ দ্বারা আপনি একে অপরের সাথে সম্পর্কিত বা ভিন্ন ধরনের ডেটাকে একই চার্টে একত্রিত করে প্রদর্শন করতে পারেন, যা ডেটার বিশ্লেষণ এবং উপস্থাপন আরও কার্যকরী করে তোলে। উদাহরণস্বরূপ, আপনি Bar Chart এবং Line Chart একত্রিত করতে পারেন, অথবা Pie Chart এবং Donut Chart-এর সংমিশ্রণ করতে পারেন।
এখানে, আমরা দেখব কিভাবে JFreeChart-এ বিভিন্ন Chart Types এর সংমিশ্রণ করা যায় এবং এর কিছু সাধারণ উদাহরণ।
১. Bar Chart এবং Line Chart এর Combination
এটি একটি জনপ্রিয় সংমিশ্রণ যেখানে একধরনের ডেটা (যেমন, পরিমাণ বা আয়) Bar Chart দিয়ে এবং অন্য ধরনের ডেটা (যেমন, প্রবণতা বা বৃদ্ধি) Line Chart দিয়ে প্রদর্শন করা হয়। এই ধরনের সংমিশ্রণ সাধারণত CategoryDataset ব্যবহার করে তৈরি করা হয়।
উদাহরণ: Bar Chart এবং Line Chart এর সংমিশ্রণ
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.chart.plot.PlotOrientation;
import javax.swing.*;
public class ComboChartExample {
public static void main(String[] args) {
// Dataset তৈরি করা
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(10, "Sales", "January");
dataset.addValue(15, "Sales", "February");
dataset.addValue(20, "Sales", "March");
dataset.addValue(25, "Sales", "April");
// Line Chart Dataset তৈরি করা
DefaultCategoryDataset lineDataset = new DefaultCategoryDataset();
lineDataset.addValue(12, "Growth", "January");
lineDataset.addValue(18, "Growth", "February");
lineDataset.addValue(22, "Growth", "March");
lineDataset.addValue(28, "Growth", "April");
// Bar Chart and Line Chart তৈরি করা
JFreeChart barChart = ChartFactory.createBarChart(
"Sales and Growth", // Title
"Month", // X-Axis label
"Amount", // Y-Axis label
dataset, // Bar dataset
PlotOrientation.VERTICAL, // Orientation
true, // Show legend
true, // Show tooltips
false // Show URLs
);
// Line Chart যোগ করা
JFreeChart lineChart = ChartFactory.createLineChart(
"Growth", // Line Chart Title
"Month", // X-Axis label
"Growth Rate", // Y-Axis label
lineDataset, // Line dataset
PlotOrientation.VERTICAL, // Orientation
false, // No legend
true, // Show tooltips
false // Show URLs
);
// Combining the Bar and Line charts
CategoryPlot plot = barChart.getCategoryPlot();
plot.setDataset(1, lineDataset);
plot.setRangePannable(true);
// ChartPanel তৈরি এবং JFrame এ প্রদর্শন
ChartPanel chartPanel = new ChartPanel(barChart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
কোড ব্যাখ্যা:
- Bar Chart Dataset এবং Line Chart Dataset দুটি আলাদা ডেটাসেট তৈরি করা হয়েছে।
- Bar Chart এবং Line Chart দুটি আলাদা চার্ট তৈরি করা হয়েছে এবং তারপর CategoryPlot এর মধ্যে লাইন চার্ট ডেটাসেট যোগ করা হয়েছে।
- ফলস্বরূপ, একটি Bar Chart এবং Line Chart এর সংমিশ্রণ পাওয়া যাবে যা একই এক্স-অ্যাক্সিসে প্রদর্শিত হবে।
২. Pie Chart এবং Doughnut Chart এর Combination
এটি একটি জনপ্রিয় কৌশল, যেখানে একটি Pie Chart এর ভিতরে Doughnut Chart (অথবা একটি Ring Chart) ব্যবহার করা হয়। এই ধরনের সংমিশ্রণটি সাধারণত Proportional Data এবং Category Data প্রদর্শন করার জন্য ব্যবহৃত হয়।
উদাহরণ: Pie Chart এবং Doughnut Chart এর সংমিশ্রণ
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
import javax.swing.*;
public class PieAndDoughnutChartExample {
public static void main(String[] args) {
// Pie chart dataset তৈরি করা
DefaultPieDataset pieDataset = new DefaultPieDataset();
pieDataset.setValue("Category A", 30);
pieDataset.setValue("Category B", 40);
pieDataset.setValue("Category C", 30);
// Pie Chart তৈরি করা
JFreeChart pieChart = ChartFactory.createPieChart(
"Pie Chart Example", // Title
pieDataset, // Dataset
true, // Show legend
true, // Show tooltips
false // Show URLs
);
// Doughnut Chart (Ring Chart) তৈরি করা
DefaultPieDataset doughnutDataset = new DefaultPieDataset();
doughnutDataset.setValue("Category 1", 50);
doughnutDataset.setValue("Category 2", 50);
JFreeChart doughnutChart = ChartFactory.createRingChart(
"Doughnut Chart Example", // Title
doughnutDataset, // Dataset
true, // Show legend
true, // Show tooltips
false // Show URLs
);
// ChartPanel তৈরি এবং JFrame এ প্রদর্শন
ChartPanel chartPanel = new ChartPanel(pieChart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
কোড ব্যাখ্যা:
- Pie Dataset এবং Doughnut Dataset তৈরি করা হয়েছে।
- Pie Chart এবং Doughnut Chart (Ring Chart) পৃথকভাবে তৈরি করা হয়েছে।
- আপনি Ring Chart এবং Pie Chart একত্রে সংযুক্ত করতে পারেন, কিন্তু এখানে শুধু Pie Chart এবং Ring Chart কে আলাদাভাবে দেখানো হয়েছে।
৩. Stacked Bar Chart এবং Line Chart এর Combination
Stacked Bar Chart এবং Line Chart এর সংমিশ্রণ আরও উন্নত এবং বিস্তারিত ডেটা উপস্থাপনার জন্য ব্যবহৃত হয়, যেখানে আপনি একই চার্টে Stacked Bar Chart এবং Line Chart একসাথে দেখাতে পারেন।
উদাহরণ: Stacked Bar Chart এবং Line Chart এর সংমিশ্রণ
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.CategoryPlot;
import javax.swing.*;
public class StackedBarAndLineChart {
public static void main(String[] args) {
// Stacked Bar Chart Dataset তৈরি করা
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(3, "Category 1", "January");
dataset.addValue(4, "Category 1", "February");
dataset.addValue(5, "Category 1", "March");
// Line Chart Dataset তৈরি করা
DefaultCategoryDataset lineDataset = new DefaultCategoryDataset();
lineDataset.addValue(1, "Growth", "January");
lineDataset.addValue(2, "Growth", "February");
lineDataset.addValue(3, "Growth", "March");
// Stacked Bar Chart তৈরি করা
JFreeChart barChart = ChartFactory.createStackedBarChart(
"Sales and Growth", // Title
"Month", // X-Axis Label
"Amount", // Y-Axis Label
dataset, // Bar Dataset
PlotOrientation.VERTICAL, // Orientation
true, // Show legend
true, // Show tooltips
false // Show URLs
);
// Line Chart যোগ করা
CategoryPlot plot = barChart.getCategoryPlot();
plot.setDataset(1, lineDataset);
// ChartPanel তৈরি এবং JFrame এ প্রদর্শন
ChartPanel chartPanel = new ChartPanel(barChart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
কোড ব্যাখ্যা:
- Stacked Bar Chart Dataset এবং Line Chart Dataset তৈরি করা হয়েছে।
- Stacked Bar Chart এবং Line Chart দুটি একসাথে CategoryPlot এ সংযুক্ত করা হয়েছে।
- ChartPanel ব্যবহার করে চার্ট প্রদর্শন করা হয়েছে।
সারসংক্ষেপ
JFreeChart-এ Different Chart Types এর সংমিশ্রণ করতে হলে, আপনি একাধিক Dataset যোগ করতে পারেন এবং CategoryPlot বা XYPlot এর মাধ্যমে সেগুলিকে একত্রে দেখাতে পারেন। যেমন Bar Chart এবং Line Chart একসাথে ব্যবহার করা, বা Pie Chart এবং Doughnut Chart এর সংমিশ্রণ। এই ধরনের কাস্টমাইজেশন আপনাকে ডেটার ভিজুয়াল উপস্থাপন আরও কার্যকরী এবং বোধগম্য করে তোলে।
Read more