Plot Interface এর মাধ্যমে Customization করা

Plot Customization - জেফ্রিচার্ট (JFreeChart) - Big Data and Analytics

306

JFreeChart লাইব্রেরিতে Plot Interface হলো চার্টের গ্রাফিক্যাল উপস্থাপনার মূল অংশ। Plot Interface এর মাধ্যমে আমরা চার্টের ভিজ্যুয়াল উপস্থাপন, অক্ষের কাস্টমাইজেশন, রঙ পরিবর্তন, গ্রিড লাইন ইত্যাদি নিয়ন্ত্রণ করতে পারি। এটি বিশেষভাবে Bar Chart, Line Chart, Pie Chart এবং অন্যান্য বিভিন্ন ধরণের চার্টে বিভিন্ন কাস্টমাইজেশন করার জন্য ব্যবহৃত হয়।

Plot Interface এর ধারণা

Plot হলো চার্টের একটি গুরুত্বপূর্ণ অংশ যা ডেটা পয়েন্টগুলোর চিত্রায়ন করে এবং গ্রাফিক্যাল রিপ্রেজেন্টেশন তৈরি করে। Plot Interface ব্যবহৃত হয়ে থাকে চার্টের শৈলী এবং উপস্থাপনা কাস্টমাইজ করার জন্য। JFreeChart বিভিন্ন ধরনের প্লট প্রদান করে, যেমন:

  • CategoryPlot: Bar Chart এবং Line Chart জন্য ব্যবহৃত।
  • XYPlot: XY Chart এবং Scatter Plot জন্য ব্যবহৃত।
  • PiePlot: Pie Chart জন্য ব্যবহৃত।
  • RingPlot: Doughnut Chart জন্য ব্যবহৃত।

Plot Interface এর মাধ্যমে কাস্টমাইজেশন

Plot Interface ব্যবহারের মাধ্যমে JFreeChart এর বিভিন্ন অংশ কাস্টমাইজ করা সম্ভব। নিচে কিছু সাধারণ কাস্টমাইজেশন দেখানো হলো:


1. CategoryPlot কাস্টমাইজেশন

CategoryPlot হলো CategoryDataset এর জন্য একটি প্লট যা Bar Chart বা Line Chart তৈরি করার জন্য ব্যবহৃত হয়। নিচে একটি উদাহরণ দেওয়া হল যেখানে CategoryPlot এর মাধ্যমে কিছু কাস্টমাইজেশন করা হয়েছে।

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class CustomBarChart extends ApplicationFrame {

    public CustomBarChart(String title) {
        super(title);
        JFreeChart chart = createChart(createDataset());
        ChartPanel panel = new ChartPanel(chart);
        panel.setPreferredSize(new java.awt.Dimension(800, 600));
        setContentPane(panel);
    }

    private static DefaultCategoryDataset createDataset() {
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(1.0, "Series1", "A");
        dataset.addValue(4.0, "Series1", "B");
        dataset.addValue(3.0, "Series1", "C");
        dataset.addValue(5.0, "Series1", "D");
        return dataset;
    }

    private static JFreeChart createChart(DefaultCategoryDataset dataset) {
        JFreeChart chart = ChartFactory.createBarChart(
                "Bar Chart Example",         // Title
                "Category",                  // X-Axis Label
                "Value",                     // Y-Axis Label
                dataset,                     // Dataset
                PlotOrientation.VERTICAL,    // Orientation
                true,                        // Show Legend
                true,                        // Tooltips
                false                        // URLs
        );

        // CategoryPlot কাস্টমাইজেশন
        CategoryPlot plot = chart.getCategoryPlot();
        plot.setDomainGridlinesVisible(true);  // X-Axis grid lines প্রদর্শন
        plot.setRangeGridlinesVisible(true);   // Y-Axis grid lines প্রদর্শন
        plot.setDomainGridlinePaint(java.awt.Color.RED); // X-Axis grid line রঙ পরিবর্তন
        plot.setRangeGridlinePaint(java.awt.Color.BLUE);  // Y-Axis grid line রঙ পরিবর্তন

        return chart;
    }

    public static void main(String[] args) {
        CustomBarChart chart = new CustomBarChart("Custom Bar Chart Example");
        chart.pack();
        RefineryUtilities.centerFrameOnScreen(chart);
        chart.setVisible(true);
    }
}

কাস্টমাইজেশন:

  • Gridline visibility: X এবং Y অক্ষের গ্রিডলাইন দৃশ্যমান করা হয়েছে।
  • Gridline color: X এবং Y অক্ষের গ্রিডলাইনগুলোর রঙ পরিবর্তন করা হয়েছে (লাল এবং নীল)।

2. XYPlot কাস্টমাইজেশন

XYPlot হলো XYDataset এর জন্য ব্যবহৃত প্লট, যা XY Chart এবং Scatter Plot তৈরি করতে ব্যবহৃত হয়। এটি ডেটার উপর নির্ভর করে বিভিন্ন কাস্টমাইজেশন করার সুযোগ দেয়।

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 org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class XYPlotCustomization extends ApplicationFrame {

    public XYPlotCustomization(String title) {
        super(title);
        JFreeChart chart = createChart(createDataset());
        ChartPanel panel = new ChartPanel(chart);
        panel.setPreferredSize(new java.awt.Dimension(800, 600));
        setContentPane(panel);
    }

    private static XYSeriesCollection createDataset() {
        XYSeries series = new XYSeries("Data Points");
        series.add(1.0, 5.0);
        series.add(2.0, 10.0);
        series.add(3.0, 15.0);
        series.add(4.0, 20.0);
        XYSeriesCollection dataset = new XYSeriesCollection(series);
        return dataset;
    }

    private static JFreeChart createChart(XYSeriesCollection dataset) {
        JFreeChart chart = ChartFactory.createXYLineChart(
                "XY Plot Example",     // Title
                "X-Axis",              // X-Axis Label
                "Y-Axis",              // Y-Axis Label
                dataset,               // Dataset
                org.jfree.chart.plot.PlotOrientation.VERTICAL,  // Orientation
                true,                  // Show Legend
                true,                  // Tooltips
                false                  // URLs
        );

        // XYPlot কাস্টমাইজেশন
        XYPlot plot = chart.getXYPlot();
        plot.setDomainGridlinesVisible(true);  // X-Axis grid lines visible
        plot.setRangeGridlinesVisible(true);   // Y-Axis grid lines visible
        plot.setDomainGridlinePaint(java.awt.Color.GREEN);  // X-Axis grid line color
        plot.setRangeGridlinePaint(java.awt.Color.ORANGE);   // Y-Axis grid line color

        return chart;
    }

    public static void main(String[] args) {
        XYPlotCustomization chart = new XYPlotCustomization("XY Plot Customization Example");
        chart.pack();
        RefineryUtilities.centerFrameOnScreen(chart);
        chart.setVisible(true);
    }
}

কাস্টমাইজেশন:

  • Gridline visibility: X এবং Y অক্ষের গ্রিডলাইন দেখানো হয়েছে।
  • Gridline color: X এবং Y অক্ষের গ্রিডলাইনগুলোর রঙ পরিবর্তন করা হয়েছে (সবুজ এবং কমলা)।

3. PiePlot কাস্টমাইজেশন

PiePlot হলো Pie Chart তৈরি করার জন্য ব্যবহৃত প্লট। এটি বিভিন্ন পি স্লাইস বা ভাগের রঙ এবং লেবেল কাস্টমাইজ করতে সাহায্য করে।

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;

import javax.swing.*;

public class PieChartCustomization {

    public static void main(String[] args) {
        DefaultPieDataset dataset = new DefaultPieDataset();
        dataset.setValue("Java", 50);
        dataset.setValue("Python", 30);
        dataset.setValue("C++", 20);

        JFreeChart chart = ChartFactory.createPieChart(
                "Programming Language Usage",  // Chart Title
                dataset,                       // Dataset
                true,                          // Show legend
                true,                          // Show tooltips
                false                          // Show URLs
        );

        // PiePlot কাস্টমাইজেশন
        PiePlot plot = (PiePlot) chart.getPlot();
        plot.setSectionPaint("Java", java.awt.Color.RED);  // "Java" section red
        plot.setSectionPaint("Python", java.awt.Color.GREEN);  // "Python" section green
        plot.setSectionPaint("C++", java.awt.Color.BLUE);  // "C++" section blue

        // ChartPanel তৈরি করা
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(600, 400));

        // JFrame এ চার্ট প্রদর্শন করা
        JFrame frame = new JFrame();
        frame.setContentPane(chartPanel);
        frame.pack();
        frame.setVisible(true);
    }
}

কাস্টমাইজেশন:

  • Section color: প্রতিটি স্লাইসের রঙ পরিবর্তন করা হয়েছে।
  • Tooltips: প্রতিটি স্লাইসের টুলটিপ দেখানোর ব্যবস্থা করা হয়েছে।

উপসংহার

Plot Interface JFreeChart-এ চার্ট কাস্টমাইজেশনের জন্য একটি গুরুত্বপূর্ণ উপাদান। CategoryPlot, XYPlot, এবং PiePlot সহ বিভিন্ন প্লটের মাধ্যমে আমরা ডেটার উপস্থাপনা এবং চার্টের শৈলী কাস্টমাইজ করতে পারি। JFreeChart-এ Plot Interface ব্যবহার করে চার্টের গ্রিডলাইন, রঙ, টুলটিপ, এবং লেবেল ইত্যাদি কাস্টমাইজ করা সম্ভব, যা একটি চার্টের গ্রাফিক্যাল উপস্থাপনাকে আরও আকর্ষণীয় এবং বোধগম্য করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...