Line Chart এর Data Points এবং Labels যোগ করা

Line Chart তৈরি করা - জেফ্রিচার্ট (JFreeChart) - Java Technologies

331

JFreeChart একটি জনপ্রিয় Java লাইব্রেরি যা ডেটা ভিজ্যুয়ালাইজেশনের জন্য ব্যবহার করা হয়। Line Chart ব্যবহার করে আপনি ডেটার পরিবর্তন এবং প্রবণতা দেখতে পারেন। এই গাইডে আমরা জানব কিভাবে Line Chart তৈরি করা যায় এবং কিভাবে Data Points এবং Labels যোগ করা যায়।


1. Line Chart তৈরি করা

প্রথমে, আপনাকে একটি সাধারণ Line Chart তৈরি করতে হবে, এবং তারপর সেখানে Data Points এবং Labels যোগ করতে হবে।

উদাহরণ: Line Chart তৈরি করা

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;
import javax.swing.*;

public class LineChartWithLabels {

    public static JPanel createChartPanel() {
        // ডেটাসেট তৈরি করা
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(1.0, "Series1", "Jan");
        dataset.addValue(4.0, "Series1", "Feb");
        dataset.addValue(3.0, "Series1", "Mar");
        dataset.addValue(5.0, "Series1", "Apr");

        // Line Chart তৈরি করা
        JFreeChart chart = ChartFactory.createLineChart(
                "Line Chart with Data Points and Labels",  // Chart Title
                "Month",                                  // X-Axis Label
                "Value",                                  // Y-Axis Label
                dataset                                   // Dataset
        );

        // Chart Panel তৈরি করে এবং রিটার্ন করা
        return new ChartPanel(chart);
    }

    public static void main(String[] args) {
        // JFrame তৈরি করা
        JFrame frame = new JFrame("JFreeChart Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(createChartPanel());
        frame.pack();
        frame.setVisible(true);
    }
}

এটি একটি সাধারণ Line Chart তৈরি করবে, যেখানে এক্স-অক্ষের (X-Axis) উপর মাস এবং ওয়াই-অক্ষের (Y-Axis) উপর মান থাকবে।


2. Data Points এবং Labels যোগ করা

Data Points যোগ করতে, আপনাকে DefaultCategoryDataset-এ মানগুলি সন্নিবেশ করতে হবে, যা আমরা উপরে করেছি। কিন্তু, আমরা যদি Data Labels এবং Data Points সঠিকভাবে দেখতে চাই, তাহলে XYItemRenderer ব্যবহার করতে হবে।

Data Labels এবং Data Points কাস্টমাইজ করার জন্য:

  1. XYPlot এর মধ্যে XYItemRenderer ব্যবহার করা।
  2. CategoryItemRenderer এবং XYPlot-এর মাধ্যমে Data Labels যোগ করা।

উদাহরণ: Data Points এবং Labels যোগ করা

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.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import javax.swing.*;
import java.awt.*;

public class LineChartWithLabelsAndPoints {

    public static JPanel createChartPanel() {
        // ডেটাসেট তৈরি করা
        XYSeries series = new XYSeries("Series1");
        series.add(1, 1.0);
        series.add(2, 4.0);
        series.add(3, 3.0);
        series.add(4, 5.0);

        XYSeriesCollection dataset = new XYSeriesCollection(series);

        // Line Chart তৈরি করা
        JFreeChart chart = ChartFactory.createXYLineChart(
                "Line Chart with Data Points and Labels",  // Chart Title
                "X-Axis",                                 // X-Axis Label
                "Y-Axis",                                 // Y-Axis Label
                dataset                                    // Dataset
        );

        // XYPlot কাস্টমাইজ করা
        XYPlot plot = chart.getXYPlot();
        XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();

        // Data Points এবং Line এর জন্য Renderer কাস্টমাইজ করা
        renderer.setSeriesLinesVisible(0, true);  // Line visibility
        renderer.setSeriesShapesVisible(0, true); // Data point visibility
        renderer.setSeriesShape(0, new java.awt.geom.Ellipse2D.Double(-3, -3, 6, 6)); // Shape for points
        plot.setRenderer(renderer);

        // Data Labels যোগ করা
        chart.getXYPlot().setDomainPannable(true);
        chart.getXYPlot().setRangePannable(true);

        // Chart Panel তৈরি করে এবং রিটার্ন করা
        return new ChartPanel(chart);
    }

    public static void main(String[] args) {
        // JFrame তৈরি করা
        JFrame frame = new JFrame("JFreeChart Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(createChartPanel());
        frame.pack();
        frame.setVisible(true);
    }
}

এই কোডে, XYSeries ব্যবহার করে ডেটা পয়েন্ট যোগ করা হয়েছে এবং XYLineAndShapeRenderer ব্যবহার করে ডেটা পয়েন্টের শেপ এবং লাইন কাস্টমাইজ করা হয়েছে। এখানে ডেটা পয়েন্টের শেপ Ellipse2D (ডট) আকারে নির্ধারণ করা হয়েছে এবং Renderer দিয়ে তাদের দৃশ্যমান করা হয়েছে।


3. Data Labels কাস্টমাইজ করা

ডেটা লেবেলগুলো প্রদর্শন করার জন্য, XYItemLabelGenerator ব্যবহার করা হয়। এটি আপনাকে ডেটা পয়েন্টের উপরে লেবেল যোগ করতে সাহায্য করে।

উদাহরণ: Data Labels কাস্টমাইজ করা

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.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.labels.XYItemLabelGenerator;
import org.jfree.chart.labels.StandardXYItemLabelGenerator;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import javax.swing.*;
import java.awt.*;

public class LineChartWithCustomLabels {

    public static JPanel createChartPanel() {
        // ডেটাসেট তৈরি করা
        XYSeries series = new XYSeries("Series1");
        series.add(1, 1.0);
        series.add(2, 4.0);
        series.add(3, 3.0);
        series.add(4, 5.0);

        XYSeriesCollection dataset = new XYSeriesCollection(series);

        // Line Chart তৈরি করা
        JFreeChart chart = ChartFactory.createXYLineChart(
                "Line Chart with Data Labels",  // Chart Title
                "X-Axis",                     // X-Axis Label
                "Y-Axis",                     // Y-Axis Label
                dataset                        // Dataset
        );

        // XYPlot কাস্টমাইজ করা
        XYPlot plot = chart.getXYPlot();
        XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();

        // Data Points এবং Line কাস্টমাইজ করা
        renderer.setSeriesLinesVisible(0, true);
        renderer.setSeriesShapesVisible(0, true);
        renderer.setSeriesShape(0, new java.awt.geom.Ellipse2D.Double(-3, -3, 6, 6));
        plot.setRenderer(renderer);

        // Data Labels যোগ করা
        XYItemLabelGenerator generator = new StandardXYItemLabelGenerator();
        renderer.setSeriesItemLabelGenerator(0, generator);
        renderer.setSeriesItemLabelsVisible(0, true);

        // Chart Panel তৈরি করে এবং রিটার্ন করা
        return new ChartPanel(chart);
    }

    public static void main(String[] args) {
        // JFrame তৈরি করা
        JFrame frame = new JFrame("JFreeChart Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(createChartPanel());
        frame.pack();
        frame.setVisible(true);
    }
}

এই কোডে, StandardXYItemLabelGenerator ব্যবহার করা হয়েছে ডেটা পয়েন্টের উপর লেবেল যোগ করতে। এটি ডেটা পয়েন্টের মান টেক্সট আকারে প্রদর্শন করবে।


সারাংশ

JFreeChart ব্যবহার করে আপনি সহজেই Line Chart তৈরি করতে পারেন এবং সেই চার্টে Data PointsLabels যোগ করতে পারেন। XYSeries, XYPlot, এবং XYLineAndShapeRenderer ব্যবহার করে আপনি আপনার চার্টের ডেটা পয়েন্ট এবং লাইন কাস্টমাইজ করতে পারবেন। এছাড়া, XYItemLabelGenerator ব্যবহার করে আপনি ডেটা পয়েন্টে কাস্টম লেবেল প্রদর্শন করতে পারবেন। JFreeChart এর এই ক্ষমতা আপনাকে আরও উন্নত এবং বিস্তারিত ডেটা ভিজ্যুয়ালাইজেশন তৈরি করতে সহায়তা করে।

Content added By
Promotion

Are you sure to start over?

Loading...