Chart এর জন্য Title, Legend, এবং Axis কনফিগারেশন

JFreeChart এর মৌলিক ধারণা - জেফ্রিচার্ট (JFreeChart) - Java Technologies

260

JFreeChart হল একটি ওপেন সোর্স লাইব্রেরি যা Java এ গ্রাফিক্যাল চার্ট তৈরি করতে ব্যবহৃত হয়। এটি বিভিন্ন ধরনের চার্ট যেমন bar chart, line chart, pie chart, ইত্যাদি তৈরি করতে সাহায্য করে। JFreeChart ব্যবহার করে আপনি চার্টের Title, Legend, এবং Axis কনফিগারেশন খুব সহজে সেট করতে পারেন, যা চার্টের ভিজ্যুয়াল আউটপুটকে আরো পরিষ্কার ও কার্যকরী করে তোলে।

এই টিউটোরিয়ালে আমরা Title, Legend, এবং Axis কনফিগারেশন সম্পর্কে বিস্তারিত আলোচনা করব, যাতে আপনি আপনার চার্টকে আরও তথ্যপূর্ণ এবং ব্যবহারযোগ্য বানাতে পারেন।


1. Title Configuration

Title চার্টের উপরের অংশে একটি টেক্সট হিসাবে প্রদর্শিত হয়, যা সাধারণত চার্টের বিষয়বস্তুর বর্ণনা করে। এটি চার্টের উদ্দেশ্য বা বিশ্লেষণকে পরিষ্কারভাবে উপস্থাপন করে।

Title কনফিগার করার জন্য setTitle() মেথড ব্যবহার করা হয়। আপনি টাইটেল স্টাইল এবং ফন্টও কাস্টমাইজ করতে পারেন।

উদাহরণ:

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

public class ChartTitleExample extends ApplicationFrame {

    public ChartTitleExample(String title) {
        super(title);
        JFreeChart chart = createChart(createDataset());
        chart.setTitle("Sales Performance for 2024"); // Title set করা হলো
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
        setContentPane(chartPanel);
    }

    private DefaultCategoryDataset createDataset() {
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(100, "Sales", "January");
        dataset.addValue(200, "Sales", "February");
        dataset.addValue(150, "Sales", "March");
        return dataset;
    }

    private JFreeChart createChart(DefaultCategoryDataset dataset) {
        return ChartFactory.createBarChart(
                "Sales Performance", // Chart Title
                "Month",              // X-Axis Label
                "Sales Amount",       // Y-Axis Label
                dataset               // Dataset
        );
    }

    public static void main(String[] args) {
        ChartTitleExample chart = new ChartTitleExample("Sales Performance Chart");
        chart.pack();
        RefineryUtilities.centerFrameOnScreen(chart);
        chart.setVisible(true);
    }
}

এই উদাহরণে, "Sales Performance for 2024" টাইটেল চার্টের শিরোনাম হিসেবে প্রদর্শিত হবে।

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

  • আপনি setTitle(String title) মেথড ব্যবহার করে টাইটেল সেট করতে পারেন।
  • টাইটেল এর ফন্ট এবং স্টাইল কাস্টমাইজ করতে পারেন, উদাহরণস্বরূপ setTitleFont() এবং setTitlePaint() ব্যবহার করে।
chart.setTitle("Sales Performance");
chart.getTitle().setFont(new java.awt.Font("Arial", java.awt.Font.BOLD, 14)); // Font style change
chart.getTitle().setPaint(java.awt.Color.BLUE); // Set color

2. Legend Configuration

Legend হল চার্টের এমন একটি অংশ যা চার্টের উপাদানগুলির (যেমন বিভিন্ন সিরিজ, ডেটা পয়েন্ট) ব্যাখ্যা করে। এটি ব্যবহারকারীদের জন্য চার্টের ডেটাকে বুঝতে সাহায্য করে। JFreeChart এ Legend ডিফল্টভাবে অন থাকে, তবে আপনি চাইলে এটি কাস্টমাইজ করতে পারেন।

Legend কনফিগার করার জন্য setLegend() মেথড ব্যবহার করা হয়।

উদাহরণ:

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

public class ChartLegendExample extends ApplicationFrame {

    public ChartLegendExample(String title) {
        super(title);
        JFreeChart chart = createChart(createDataset());
        chart.getLegend().setPosition(org.jfree.ui.RectangleEdge.BOTTOM); // Legend position set
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
        setContentPane(chartPanel);
    }

    private DefaultCategoryDataset createDataset() {
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(100, "Sales", "January");
        dataset.addValue(200, "Sales", "February");
        dataset.addValue(150, "Sales", "March");
        return dataset;
    }

    private JFreeChart createChart(DefaultCategoryDataset dataset) {
        JFreeChart chart = ChartFactory.createBarChart(
                "Sales Performance", // Chart Title
                "Month",              // X-Axis Label
                "Sales Amount",       // Y-Axis Label
                dataset               // Dataset
        );
        chart.getLegend().setVisible(true); // Enable legend visibility
        return chart;
    }

    public static void main(String[] args) {
        ChartLegendExample chart = new ChartLegendExample("Sales Performance Chart");
        chart.pack();
        RefineryUtilities.centerFrameOnScreen(chart);
        chart.setVisible(true);
    }
}

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

  • Legend Position: setPosition(RectangleEdge position) ব্যবহার করে আপনি Legend এর অবস্থান পরিবর্তন করতে পারেন, যেমন LEFT, RIGHT, TOP, বা BOTTOM
  • Legend Font and Color: getLegend().setItemFont() এবং getLegend().setItemPaint() এর মাধ্যমে আপনি Legend এর ফন্ট এবং রঙ কাস্টমাইজ করতে পারেন।
chart.getLegend().setItemFont(new java.awt.Font("Arial", java.awt.Font.PLAIN, 12));
chart.getLegend().setItemPaint(java.awt.Color.RED); // Set legend item color

3. Axis Configuration

JFreeChart এ Axis কনফিগারেশন ব্যবহারকারীদের জন্য গুরুত্বপূর্ণ, কারণ এটি ডেটার স্কেল এবং উপস্থাপনাকে নিয়ন্ত্রণ করে। সাধারণত, এক্স-অ্যাক্সিস (X-Axis) এবং ওয়াই-অ্যাক্সিস (Y-Axis) কনফিগার করা হয়।

3.1. X-Axis Configuration

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.axis.CategoryAxis;

public class AxisExample extends ApplicationFrame {

    public AxisExample(String title) {
        super(title);
        JFreeChart chart = createChart(createDataset());
        CategoryAxis domainAxis = (CategoryAxis) chart.getCategoryPlot().getDomainAxis();
        domainAxis.setLabel("Month");
        domainAxis.setTickMarkPosition(CategoryAxis.TICK_MARK_BOTTOM); // Set tick marks at the bottom
        chart.getCategoryPlot().setDomainAxis(domainAxis);
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
        setContentPane(chartPanel);
    }

    private DefaultCategoryDataset createDataset() {
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(100, "Sales", "January");
        dataset.addValue(200, "Sales", "February");
        dataset.addValue(150, "Sales", "March");
        return dataset;
    }

    private JFreeChart createChart(DefaultCategoryDataset dataset) {
        return ChartFactory.createBarChart(
                "Sales Performance", // Chart Title
                "Month",             // X-Axis Label
                "Sales Amount",      // Y-Axis Label
                dataset              // Dataset
        );
    }

    public static void main(String[] args) {
        AxisExample chart = new AxisExample("Sales Performance Chart");
        chart.pack();
        RefineryUtilities.centerFrameOnScreen(chart);
        chart.setVisible(true);
    }
}

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

  • Axis Label: setLabel(String label) দিয়ে এক্স-অ্যাক্সিস এবং ওয়াই-অ্যাক্সিসের লেবেল কাস্টমাইজ করা যায়।
  • Tick Mark Position: setTickMarkPosition() দিয়ে টিক মার্কের অবস্থান পরিবর্তন করা যায়।

3.2. Y-Axis Configuration

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.data.category.DefaultCategoryDataset;

public class YAxisExample extends ApplicationFrame {

    public YAxisExample(String title) {
        super(title);
        JFreeChart chart = createChart(createDataset());
        NumberAxis rangeAxis = (NumberAxis) chart.getCategoryPlot().getRangeAxis();
        rangeAxis.setLabel("Sales Amount");
        rangeAxis.setAutoRangeIncludesZero(false); // Disable auto-range for Y-axis
        chart.getCategoryPlot().setRangeAxis(rangeAxis);
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
        setContentPane(chartPanel);
    }

    private DefaultCategoryDataset createDataset() {
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(100, "Sales", "January");
        dataset.addValue(200, "Sales", "February");
        dataset.addValue(150, "Sales", "March");
        return dataset;
    }

    private JFreeChart createChart(DefaultCategoryDataset dataset) {
        return ChartFactory.createBarChart(
                "Sales Performance", // Chart Title
                "Month",             // X-Axis Label
                "Sales Amount",      // Y-Axis Label
                dataset              // Dataset
        );
    }

    public static void main(String[] args) {
        YAxisExample chart = new YAxisExample("Sales Performance Chart");
        chart.pack();
        RefineryUtilities.centerFrameOnScreen(chart);
        chart.setVisible(true);
    }
}

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

  • Y-Axis Label: setLabel() দিয়ে ওয়াই-অ্যাক্সিসের লেবেল কাস্টমাইজ করা যায়।
  • Auto Range: setAutoRangeIncludesZero(false) দিয়ে ওয়াই-অ্যাক্সিসে শুরুতে ০ প্রদর্শন বন্ধ করা যায়।

সারাংশ

JFreeChart দিয়ে Title, Legend, এবং Axis কনফিগারেশন চার্টের গ্রাফিক্যাল উপস্থাপনাকে আরও পরিষ্কার এবং ব্যবহারযোগ্য করে তোলে। Title চার্টের শিরোনাম প্রদান করে, Legend চার্টের উপাদানগুলো ব্যাখ্যা করে এবং Axis ডেটার স্কেল এবং লেবেল কাস্টমাইজ করে। এই কনফিগারেশনগুলির মাধ্যমে আপনি JFreeChart এর মাধ্যমে আরও আকর্ষণীয় এবং তথ্যপূর্ণ চার্ট তৈরি করতে পারবেন, যা আপনার ডেটা বিশ্লেষণকে আরও সহজ এবং কার্যকরী করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...