Subplot তৈরি এবং একাধিক Chart একত্রিত করা

Multiple Axes এবং Subplots - জেফ্রিচার্ট (JFreeChart) - Big Data and Analytics

397

JFreeChart লাইব্রেরি দিয়ে একাধিক Chart বা Plot একত্রিত করা খুবই সহজ এবং কার্যকরী। আপনি Subplot তৈরি করতে পারেন এবং একাধিক চার্ট বা গ্রাফিক্যাল উপাদান একটি একক চার্টে প্রদর্শন করতে পারেন। এই প্রক্রিয়াটি Multiple Plots বা Multiple Charts একটি একক উইন্ডোতে বা JFrame-এ দেখানোর জন্য ব্যবহৃত হয়।

এটি বিভিন্ন ধরণের ডেটা একসাথে উপস্থাপন করার জন্য খুবই সহায়ক, যেমন Bar Chart এবং Line Chart একই সাথে প্রদর্শন করা।


১. Subplot তৈরি করা

Subplot হল একটি একক চার্টের মধ্যে একাধিক প্লট (Chart) বা গ্রাফের অংশ যা একসাথে প্রদর্শিত হয়। JFreeChart-এ Subplot তৈরি করার জন্য CombinedDomainCategoryPlot এবং CombinedRangeCategoryPlot ব্যবহার করা হয়।

Subplot তৈরি করার উদাহরণ:

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CombinedDomainCategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.data.category.DefaultCategoryDataset;

import javax.swing.*;

public class SubplotExample {
    public static void main(String[] args) {
        // প্রথম ডেটাসেট তৈরি করা
        DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
        dataset1.addValue(10, "Series1", "Category1");
        dataset1.addValue(20, "Series1", "Category2");
        dataset1.addValue(30, "Series1", "Category3");

        // দ্বিতীয় ডেটাসেট তৈরি করা
        DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
        dataset2.addValue(5, "Series2", "Category1");
        dataset2.addValue(15, "Series2", "Category2");
        dataset2.addValue(25, "Series2", "Category3");

        // প্রথম CategoryPlot তৈরি করা
        CategoryPlot plot1 = new CategoryPlot();
        plot1.setDataset(dataset1);
        plot1.setRangePannable(true);
        plot1.setDomainPannable(true);

        // দ্বিতীয় CategoryPlot তৈরি করা
        CategoryPlot plot2 = new CategoryPlot();
        plot2.setDataset(dataset2);
        plot2.setRangePannable(true);
        plot2.setDomainPannable(true);

        // CombinedDomainCategoryPlot তৈরি করা
        CombinedDomainCategoryPlot combinedPlot = new CombinedDomainCategoryPlot();
        combinedPlot.add(plot1, 1);  // প্রথম plot (Bar Chart)
        combinedPlot.add(plot2, 1);  // দ্বিতীয় plot (Line Chart)

        // Chart তৈরি করা
        JFreeChart chart = new JFreeChart("Combined Plot Example", JFreeChart.DEFAULT_TITLE_FONT, combinedPlot, false);

        // ChartPanel তৈরি এবং JFrame এ দেখানো
        ChartPanel chartPanel = new ChartPanel(chart);
        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);
    }
}

কোড ব্যাখ্যা:

  1. প্রথমে দুটি DefaultCategoryDataset তৈরি করা হয়েছে।
  2. দুটি CategoryPlot তৈরি করা হয়েছে, যেখানে প্রথমটি Bar Chart এবং দ্বিতীয়টি Line Chart
  3. CombinedDomainCategoryPlot ব্যবহার করে দুটি প্লট একত্রিত করা হয়েছে।
  4. ChartPanel ব্যবহার করে JFreeChart JFrame-এ প্রদর্শন করা হয়েছে।

এই কোডটি দুটি চার্টকে একটি একক উইন্ডোতে (JFrame) প্রদর্শন করবে, যেখানে একটি Bar Chart এবং একটি Line Chart থাকবে।


২. Multiple Charts একত্রিত করা

JFreeChart-এ একাধিক চার্ট একত্রিত করার জন্য, আপনি Multiple Plots বা Multiple Axes ব্যবহার করতে পারেন। একাধিক XYPlot বা CategoryPlot তৈরি করে একক উইন্ডোতে প্রদর্শন করা যায়।

Multiple XYPlots একত্রিত করা:

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;

import javax.swing.*;

public class MultiplePlotsExample {
    public static void main(String[] args) {
        // প্রথম XYSeries তৈরি
        XYSeries series1 = new XYSeries("Series 1");
        series1.add(1, 10);
        series1.add(2, 20);
        series1.add(3, 30);

        // দ্বিতীয় XYSeries তৈরি
        XYSeries series2 = new XYSeries("Series 2");
        series2.add(1, 15);
        series2.add(2, 25);
        series2.add(3, 35);

        // XYSeriesCollection তৈরি
        XYSeriesCollection dataset1 = new XYSeriesCollection(series1);
        XYSeriesCollection dataset2 = new XYSeriesCollection(series2);

        // প্রথম XYPlot তৈরি
        XYPlot plot1 = new XYPlot(dataset1, null, null, null);

        // দ্বিতীয় XYPlot তৈরি
        XYPlot plot2 = new XYPlot(dataset2, null, null, null);

        // দুটি XYPlot একত্রিত করা
        plot1.setDomainPannable(true);
        plot1.setRangePannable(true);
        plot2.setDomainPannable(true);
        plot2.setRangePannable(true);

        JFreeChart chart1 = new JFreeChart(plot1);
        JFreeChart chart2 = new JFreeChart(plot2);

        // ChartPanel তৈরি
        ChartPanel chartPanel1 = new ChartPanel(chart1);
        chartPanel1.setPreferredSize(new java.awt.Dimension(800, 600));

        // JFrame এ Chart Panel যোগ করা
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setContentPane(chartPanel1);
        frame.pack();
        frame.setVisible(true);
    }
}

কোড ব্যাখ্যা:

  1. প্রথমে দুটি XYSeries তৈরি করা হয়েছে এবং দুটি XYSeriesCollection-এ সেগুলি সংরক্ষণ করা হয়েছে।
  2. দুটি XYPlot তৈরি করা হয়েছে, এবং এতে আলাদা ডেটাসেট যুক্ত করা হয়েছে।
  3. দুটি XYPlot একত্রিত করে দুটি XYChart তৈরি করা হয়েছে।
  4. ChartPanel ব্যবহার করে XYPlot একটি উইন্ডোতে (JFrame) প্রদর্শিত হচ্ছে।

সারসংক্ষেপ

Subplot এবং Multiple Chart একত্রিত করা JFreeChart ব্যবহারকারীদের জন্য একটি শক্তিশালী ফিচার, যেখানে একাধিক গ্রাফ বা চার্টকে একে অপরের সাথে সংযুক্ত করা যায়।

  • Subplot তৈরি করতে আপনি CombinedDomainCategoryPlot বা CombinedRangeCategoryPlot ব্যবহার করতে পারেন।
  • Multiple Plots একত্রিত করতে আপনি XYPlot বা CategoryPlot একাধিক চার্ট তৈরি করে তাদের একসাথে একটি উইন্ডোতে প্রদর্শন করতে পারেন।

এই প্রক্রিয়াগুলি ডেটা ভিজুয়ালাইজেশন আরও কার্যকরী এবং আকর্ষণীয় করে তোলে, বিশেষ করে যখন আপনার কাছে একাধিক ধরনের ডেটা থাকে এবং আপনি সেগুলি একসাথে তুলনা করতে চান।

Content added By
Promotion

Are you sure to start over?

Loading...