XYPlot এবং CategoryPlot এর জন্য Customization

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

360

JFreeChart লাইব্রেরি আপনাকে চার্টের প্লটের (XYPlot এবং CategoryPlot) বিভিন্ন উপাদান কাস্টমাইজ করার সুযোগ দেয়। XYPlot এবং CategoryPlot হলো JFreeChart এর প্লটিং অঙ্গ যা ডেটা প্রদর্শনের জন্য ব্যবহৃত হয়। এই প্লটগুলোর মাধ্যমে আপনি আপনার চার্টের অক্ষ (axis), গ্রিডলাইন, লাইন, রঙ এবং অন্যান্য ভিজ্যুয়াল উপাদান কাস্টমাইজ করতে পারবেন। এখানে আমরা XYPlot এবং CategoryPlot এর কাস্টমাইজেশন পদ্ধতি দেখব।


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

XYPlot হলো XYChart (যেমন Line Chart বা Scatter Plot) এর প্লট অংশ। এটি X এবং Y অক্ষকে নিয়ন্ত্রণ করে এবং ডেটা পয়েন্টগুলি প্লট করে। এটি খুবই কাস্টমাইজযোগ্য এবং বিভিন্ন ভিজ্যুয়াল উপাদানগুলি পরিবর্তন করা যায়।

১. XYPlot এর অক্ষ কাস্টমাইজ করা

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

import javax.swing.*;
import java.awt.*;

public class XYPlotCustomization {
    public static void main(String[] args) {
        // XYSeries তৈরি করা
        XYSeries series = new XYSeries("Temperature");
        series.add(1, 30.5);
        series.add(2, 31.5);
        series.add(3, 32.0);

        XYSeriesCollection dataset = new XYSeriesCollection(series);

        // XYPlot তৈরি করা
        JFreeChart chart = ChartFactory.createXYLineChart(
                "Temperature Over Time", // Chart Title
                "Time",                 // X-Axis Label
                "Temperature",          // Y-Axis Label
                dataset                 // Dataset
        );

        XYPlot plot = chart.getXYPlot();

        // X-Axis কাস্টমাইজ করা
        NumberAxis xAxis = new NumberAxis("Custom Time");
        xAxis.setLabelFont(new Font("Arial", Font.BOLD, 12));
        plot.setDomainAxis(xAxis);

        // Y-Axis কাস্টমাইজ করা
        NumberAxis yAxis = new NumberAxis("Custom Temperature");
        yAxis.setRange(30, 35); // Y-Axis range 30 থেকে 35
        yAxis.setLabelFont(new Font("Arial", Font.BOLD, 12));
        plot.setRangeAxis(yAxis);

        // Gridline কাস্টমাইজ করা
        plot.setDomainGridlinePaint(Color.BLUE);
        plot.setRangeGridlinePaint(Color.RED);

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

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

২. XYPlot এর লাইন এবং রঙ কাস্টমাইজ করা

plot.getRenderer().setSeriesPaint(0, Color.GREEN); // লাইন রঙ পরিবর্তন
plot.getRenderer().setSeriesStroke(0, new BasicStroke(2.0f)); // লাইন স্ট্রোক পরিবর্তন

এখানে আমরা XYPlot এর লাইন রঙ এবং স্ট্রোক কাস্টমাইজ করেছি। setSeriesPaint() ব্যবহার করে লাইন রঙ পরিবর্তন এবং setSeriesStroke() ব্যবহার করে স্ট্রোক বা লাইনটির বেধ কাস্টমাইজ করা হয়েছে।

৩. XYPlot এর গ্রিডলাইন কাস্টমাইজ করা

plot.setDomainGridlinePaint(Color.GRAY); // X-Axis gridline রঙ পরিবর্তন
plot.setRangeGridlinePaint(Color.YELLOW); // Y-Axis gridline রঙ পরিবর্তন

এখানে, XYPlot এর গ্রিডলাইনগুলোর রঙ পরিবর্তন করা হয়েছে।


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

CategoryPlot হলো CategoryChart (যেমন Bar Chart, Line Chart) এর প্লট অংশ। এটি মূলত ক্যাটেগরি ভিত্তিক ডেটা প্লট করে। CategoryPlot-এ বিভিন্ন ধরনের কাস্টমাইজেশন করা যেতে পারে যেমন অক্ষের রঙ, গ্রিডলাইন রঙ, লাইন স্টাইল ইত্যাদি।

১. 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.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.data.category.DefaultCategoryDataset;

import javax.swing.*;
import java.awt.*;

public class CategoryPlotCustomization {
    public static void main(String[] args) {
        // DefaultCategoryDataset তৈরি করা
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(5, "Sales", "January");
        dataset.addValue(7, "Sales", "February");
        dataset.addValue(6, "Sales", "March");

        // Bar Chart তৈরি
        JFreeChart chart = ChartFactory.createBarChart(
                "Monthly Sales",   // Chart Title
                "Month",           // X-Axis Label
                "Sales (Units)",   // Y-Axis Label
                dataset            // Dataset
        );

        CategoryPlot plot = chart.getCategoryPlot();

        // X-Axis কাস্টমাইজ করা
        CategoryAxis xAxis = plot.getDomainAxis();
        xAxis.setLabelFont(new Font("Arial", Font.BOLD, 12));

        // Y-Axis কাস্টমাইজ করা
        NumberAxis yAxis = (NumberAxis) plot.getRangeAxis();
        yAxis.setRange(0, 10); // Y-Axis range 0 থেকে 10
        yAxis.setLabelFont(new Font("Arial", Font.BOLD, 12));

        // Gridline কাস্টমাইজ করা
        plot.setDomainGridlinePaint(Color.GREEN);  // X-Axis gridline রঙ
        plot.setRangeGridlinePaint(Color.BLUE);    // Y-Axis gridline রঙ

        // 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);
    }
}

২. CategoryPlot এর গ্রিডলাইন কাস্টমাইজ করা

plot.setDomainGridlinePaint(Color.YELLOW);  // X-Axis gridline রঙ পরিবর্তন
plot.setRangeGridlinePaint(Color.PINK);     // Y-Axis gridline রঙ পরিবর্তন

এখানে, CategoryPlot এর গ্রিডলাইনগুলোর রঙ পরিবর্তন করা হয়েছে।

৩. CategoryPlot এর বার বা লাইন রঙ কাস্টমাইজ করা

plot.getRenderer().setSeriesPaint(0, Color.CYAN); // বার রঙ পরিবর্তন

এখানে, CategoryPlot-এ সিরিজ 0 এর জন্য বার রঙ পরিবর্তন করা হয়েছে।


সারসংক্ষেপ

XYPlot এবং CategoryPlot JFreeChart-এর গুরুত্বপূর্ণ উপাদান যা চার্টের ভিজ্যুয়াল উপাদান কাস্টমাইজ করার জন্য ব্যবহৃত হয়। আপনি XYPlot এবং CategoryPlot এর বিভিন্ন উপাদান যেমন অক্ষ, লাইন, গ্রিডলাইন, রঙ ইত্যাদি কাস্টমাইজ করতে পারেন।

  • XYPlot সাধারণত XYCharts (যেমন Line Chart, Scatter Plot) এর জন্য ব্যবহৃত হয় এবং CategoryPlot সাধারণত CategoryCharts (যেমন Bar Chart, Line Chart) এর জন্য ব্যবহৃত হয়।
  • এগুলি JFreeChart-এ চার্টের ডিজাইন এবং ভিজ্যুয়াল উপস্থাপনা উন্নত করতে সাহায্য করে।
Content added By
Promotion

Are you sure to start over?

Loading...