Multiple Time Series যুক্ত করা

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

287

JFreeChart লাইব্রেরি ব্যবহার করে আপনি একাধিক Time Series যুক্ত করে একটি লাইন চার্ট তৈরি করতে পারেন। টাইম সিরিজ (Time Series) সাধারণত ডেটার সময়কালিক পরিবর্তন বা প্রবণতা দেখানোর জন্য ব্যবহৃত হয়। একাধিক টাইম সিরিজ ব্যবহার করার মাধ্যমে আপনি বিভিন্ন টাইম সিরিজের মধ্যে তুলনা করতে পারেন। যেমন, আপনি বিভিন্ন দেশের বা বিভিন্ন পণ্যের বিক্রয়ের প্রবণতা তুলনা করতে পারেন।

এই গাইডে, আমরা দেখব কিভাবে Multiple Time Series সহ একটি লাইন চার্ট তৈরি করা যায়।


1. টাইম সিরিজ এবং JFreeChart কনফিগারেশন

প্রথমে, নিশ্চিত করুন যে আপনার প্রজেক্টে JFreeChart লাইব্রেরি সংযুক্ত আছে। আপনি যদি Maven ব্যবহার করেন, তাহলে pom.xml ফাইলে নিচের ডিপেনডেন্সি যোগ করতে পারেন:

<dependency>
    <groupId>org.jfree</groupId>
    <artifactId>jfreechart</artifactId>
    <version>1.5.3</version>
</dependency>
<dependency>
    <groupId>org.jfree</groupId>
    <artifactId>jcommon</artifactId>
    <version>1.0.24</version>
</dependency>

এছাড়া, আপনি JAR ফাইল ডাউনলোড করে আপনার প্রজেক্টে যোগ করতে পারেন।


2. Multiple Time Series সহ Line Chart তৈরি করা

এখন, আমরা Multiple Time Series সহ একটি লাইন চার্ট তৈরি করব। এতে আমরা দুইটি টাইম সিরিজ (যেমন, Sales এবং Expenses) যোগ করব এবং তাদের সময়কালিক প্রবণতা তুলনা করব।

কোড উদাহরণ:

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.time.Second;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;

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

public class MultipleTimeSeriesChart {

    public static JPanel createChartPanel() {
        // Sales Time Series তৈরি করা
        TimeSeries salesSeries = new TimeSeries("Sales");
        salesSeries.add(new Second(10, 5, 8, 3, 2022), 1000);
        salesSeries.add(new Second(15, 5, 8, 3, 2022), 1200);
        salesSeries.add(new Second(20, 5, 8, 3, 2022), 1500);
        salesSeries.add(new Second(25, 5, 8, 3, 2022), 1700);
        salesSeries.add(new Second(30, 5, 8, 3, 2022), 1900);

        // Expenses Time Series তৈরি করা
        TimeSeries expensesSeries = new TimeSeries("Expenses");
        expensesSeries.add(new Second(10, 5, 8, 3, 2022), 500);
        expensesSeries.add(new Second(15, 5, 8, 3, 2022), 600);
        expensesSeries.add(new Second(20, 5, 8, 3, 2022), 700);
        expensesSeries.add(new Second(25, 5, 8, 3, 2022), 800);
        expensesSeries.add(new Second(30, 5, 8, 3, 2022), 900);

        // Dataset তৈরি করা
        TimeSeriesCollection dataset = new TimeSeriesCollection();
        dataset.addSeries(salesSeries);
        dataset.addSeries(expensesSeries);

        // Line Chart তৈরি করা
        JFreeChart chart = ChartFactory.createTimeSeriesChart(
                "Sales and Expenses Over Time",  // Chart Title
                "Time",                          // X-Axis Label
                "Amount",                        // Y-Axis Label
                dataset,                         // Dataset
                true,                            // Include legend
                true,                            // Tooltips
                false                            // URLs
        );

        // Chart Panel তৈরি এবং কাস্টমাইজ করা
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
        chartPanel.setMouseWheelEnabled(true);

        return chartPanel;
    }

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

3. কোডের ব্যাখ্যা

  1. TimeSeries:
    • TimeSeries হল JFreeChart এর একটি ক্লাস যা টাইম সিরিজ ডেটা ধারণ করে। এখানে, আমরা দুটি সিরিজ তৈরি করেছি:
      • Sales: বিক্রয় ডেটা (যেমন, ১০:১৫:০০, ১০:২০:০০)।
      • Expenses: খরচ ডেটা (যেমন, ১০:১৫:০০, ১০:২০:০০)।
  2. Second:
    • Second ক্লাসটি JFreeChart এর টাইম সিরিজ ডেটার জন্য ব্যবহৃত হয়, যেখানে প্রতিটি ডেটা পয়েন্টের সাথে একটি নির্দিষ্ট সময় যুক্ত থাকে।
  3. TimeSeriesCollection:
    • এই ডেটাসেট ব্যবহার করে আমরা একাধিক টাইম সিরিজ যোগ করতে পারি। এখানে, দুটি টাইম সিরিজ (Sales এবং Expenses) TimeSeriesCollection এ যুক্ত করা হয়েছে।
  4. ChartFactory.createTimeSeriesChart():
    • createTimeSeriesChart() মেথডের মাধ্যমে টাইম সিরিজের জন্য একটি লাইন চার্ট তৈরি করা হয়েছে। এতে টাইম সিরিজ ডেটা, চার্টের শিরোনাম, অক্ষের নাম এবং অন্যান্য কনফিগারেশন প্যারামিটার দেওয়া হয়েছে।
  5. ChartPanel:
    • ChartPanel ব্যবহার করে আমরা JFreeChart টুলটিকে GUI তে প্রদর্শন করেছি।
  6. JFrame:
    • JFrame তৈরি করা হয়েছে এবং এতে ChartPanel যোগ করা হয়েছে যাতে চার্টটি GUI তে প্রদর্শিত হয়।

4. আউটপুট

এই কোডটি চালালে একটি Line Chart প্রদর্শিত হবে যেখানে দুটি টাইম সিরিজ থাকবে:

  • Sales (বিক্রয়) এবং Expenses (খরচ)
  • X-Axis এ সময় এবং Y-Axis এ পরিমাণ থাকবে (যেমন বিক্রয়ের এবং খরচের পরিমাণ)।
  • সময়কালিকভাবে ডেটার পরিবর্তন প্রদর্শিত হবে।

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

JFreeChart-এ বিভিন্ন কাস্টমাইজেশন করা যায়, যেমন:

  1. রঙ পরিবর্তন: সিরিজের রঙ পরিবর্তন করতে:

    plot.getRenderer().setSeriesPaint(0, Color.BLUE); // Sales Series Color
    plot.getRenderer().setSeriesPaint(1, Color.RED);  // Expenses Series Color
    
  2. লোডিং শেপ পরিবর্তন: ডেটা পয়েন্টের শেপ পরিবর্তন করতে:

    renderer.setSeriesShape(0, new Ellipse2D.Double(-3, -3, 6, 6)); // Circle shape
    
  3. Axis এবং লেবেল কাস্টমাইজেশন:

    plot.getDomainAxis().setLabelFont(new Font("Arial", Font.BOLD, 12));  // X-Axis Label Font
    plot.getRangeAxis().setLabelFont(new Font("Arial", Font.BOLD, 12));   // Y-Axis Label Font
    
  4. Multiple Y-Axis ব্যবহার: আপনি যদি দুইটি আলাদা Y-Axis ব্যবহার করতে চান:

    plot.setRangeAxis(1, new NumberAxis("Expenses"));
    plot.setDataset(1, expensesDataset);
    plot.mapDatasetToRangeAxis(1, 1);
    

সারাংশ

JFreeChart দিয়ে আপনি সহজেই Multiple Time Series সহ Line Chart তৈরি করতে পারেন। এটি সময়ের সাথে ডেটার প্রবণতা এবং বিভিন্ন টাইম সিরিজের মধ্যে সম্পর্ক তুলনা করতে সহায়ক। এখানে, আমরা Sales এবং Expenses টাইম সিরিজ দিয়ে একটি লাইন চার্ট তৈরি করেছি এবং এর কাস্টমাইজেশন অপশন দেখিয়েছি। JFreeChart এর মাধ্যমে বিভিন্ন টাইম সিরিজ এবং ডেটা ভিজ্যুয়ালাইজেশন খুব সহজেই করা সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...