Practical উদাহরণ: Statistical Data Visualization

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

302

JFreeChart একটি শক্তিশালী গ্রাফিকাল লাইব্রেরি যা Java-তে বিভিন্ন ধরনের চার্ট এবং গ্রাফ তৈরি করতে ব্যবহৃত হয়। এই লাইব্রেরি ব্যবহার করে আপনি বিভিন্ন পরিসংখ্যানগত ডেটা (Statistical Data) যেমন গড়, ডেভিয়েশন, হিস্টোগ্রাম, রিগ্রেশন ইত্যাদি সুন্দরভাবে ভিজ্যুয়ালাইজ করতে পারেন।

এখানে আমরা একটি Practical Example দেখব, যেখানে Statistical Data Visualization করার জন্য Bar Chart, Line Chart এবং Histogram ব্যবহার করা হবে।


1. Statistical Data Visualization Overview

Statistical Data Visualization ব্যবহৃত হয় ডেটা বিশ্লেষণ এবং পরিসংখ্যানগত ফলাফলগুলো ভিজ্যুয়ালি প্রদর্শন করতে। এটি সিস্টেমের কার্যকারিতা, পারফরম্যান্স, বা এক্সপেরিমেন্টাল রেজাল্টের সম্পর্ক বুঝতে সাহায্য করে। সাধারণত পরিসংখ্যানের কিছু নির্দিষ্ট দিক যেমন:

  • Mean (গড়): একটি ডেটাসেটের গড় মান।
  • Standard Deviation (স্ট্যান্ডার্ড ডেভিয়েশন): ডেটাসেটের ভ্যারিয়েশন বা ছড়ানো মান।
  • Frequency Distribution (ফ্রিকোয়েন্সি ডিসট্রিবিউশন): ডেটার বিভিন্ন মানের কতবার উপস্থিতি হচ্ছে।
  • Regression (রিগ্রেশন): ডেটার মধ্যে সম্পর্ক বিশ্লেষণ।

2. Practical Example: Statistical Data Visualization

এখানে আমরা Bar Chart, Line Chart, এবং Histogram তৈরি করব, যাতে আমরা Statistical Data ভিজ্যুয়ালাইজ করতে পারি।

Step 1: ডেটাসেট তৈরি করা

ধরা যাক, আমাদের কাছে একটি শিক্ষার্থীদের পরীক্ষার ফলাফল রয়েছে। আমরা বিভিন্ন শিক্ষার্থীর নাম এবং তাদের স্কোর সংরক্ষণ করব এবং সেই ডেটা থেকে বিভিন্ন ধরনের Statistical Visualization তৈরি করব।

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.category.DefaultCategoryDataset;
import org.jfree.data.histogram.HistogramDataset;
import org.jfree.chart.plot.PiePlot3D;
import javax.swing.*;
import java.awt.Color;

public class StatisticalDataVisualization {

    public static void main(String[] args) {
        // Dataset তৈরি
        DefaultCategoryDataset barChartDataset = createBarChartDataset();
        JFreeChart barChart = createBarChart(barChartDataset);
        
        // Line Chart Dataset
        DefaultCategoryDataset lineChartDataset = createLineChartDataset();
        JFreeChart lineChart = createLineChart(lineChartDataset);

        // Histogram Dataset
        HistogramDataset histogramDataset = createHistogramDataset();
        JFreeChart histogramChart = createHistogramChart(histogramDataset);

        // Panels তৈরি
        ChartPanel barChartPanel = new ChartPanel(barChart);
        barChartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
        
        ChartPanel lineChartPanel = new ChartPanel(lineChart);
        lineChartPanel.setPreferredSize(new java.awt.Dimension(800, 600));

        ChartPanel histogramChartPanel = new ChartPanel(histogramChart);
        histogramChartPanel.setPreferredSize(new java.awt.Dimension(800, 600));

        // JFrame তৈরি
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new java.awt.GridLayout(3, 1));
        
        frame.add(barChartPanel);
        frame.add(lineChartPanel);
        frame.add(histogramChartPanel);
        
        frame.pack();
        frame.setVisible(true);
    }

    // Bar Chart Dataset তৈরি
    private static DefaultCategoryDataset createBarChartDataset() {
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        
        // Data set: Student Scores
        dataset.addValue(85, "Score", "Alice");
        dataset.addValue(92, "Score", "Bob");
        dataset.addValue(78, "Score", "Charlie");
        dataset.addValue(95, "Score", "David");
        dataset.addValue(88, "Score", "Eve");

        return dataset;
    }

    // Bar Chart তৈরি
    private static JFreeChart createBarChart(DefaultCategoryDataset dataset) {
        return ChartFactory.createBarChart(
            "Student Scores",   // Chart Title
            "Student",           // X-Axis Label
            "Score",             // Y-Axis Label
            dataset,             // Dataset
            PlotOrientation.VERTICAL,
            true,                // Include legend
            true,                // Tooltips
            false                // URLs
        );
    }

    // Line Chart Dataset তৈরি
    private static DefaultCategoryDataset createLineChartDataset() {
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        
        // Data set: Student Progress Over Time
        dataset.addValue(85, "Progress", "Week 1");
        dataset.addValue(87, "Progress", "Week 2");
        dataset.addValue(90, "Progress", "Week 3");
        dataset.addValue(92, "Progress", "Week 4");
        dataset.addValue(95, "Progress", "Week 5");

        return dataset;
    }

    // Line Chart তৈরি
    private static JFreeChart createLineChart(DefaultCategoryDataset dataset) {
        return ChartFactory.createLineChart(
            "Student Progress Over Time",  // Chart Title
            "Week",                        // X-Axis Label
            "Score",                       // Y-Axis Label
            dataset,                       // Dataset
            PlotOrientation.VERTICAL,
            true,                          // Include legend
            true,                          // Tooltips
            false                          // URLs
        );
    }

    // Histogram Dataset তৈরি
    private static HistogramDataset createHistogramDataset() {
        HistogramDataset dataset = new HistogramDataset();
        
        // Dataset: Exam Scores Frequency
        double[] scores = {85, 92, 78, 95, 88, 91, 80, 89, 85, 93};
        dataset.addSeries("Frequency", scores, 10);

        return dataset;
    }

    // Histogram Chart তৈরি
    private static JFreeChart createHistogramChart(HistogramDataset dataset) {
        JFreeChart chart = ChartFactory.createHistogram(
            "Exam Scores Frequency",     // Chart Title
            "Score",                     // X-Axis Label
            "Frequency",                 // Y-Axis Label
            dataset,                     // Dataset
            PlotOrientation.VERTICAL
        );
        
        return chart;
    }
}

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

  1. Bar Chart Dataset:
    • DefaultCategoryDataset ব্যবহার করে বার চার্টের ডেটা তৈরি করা হয়েছে। এখানে শিক্ষার্থীদের নাম এবং তাদের স্কোর দেওয়া হয়েছে। addValue() মেথড দিয়ে ডেটা যুক্ত করা হয়েছে।
  2. Line Chart Dataset:
    • DefaultCategoryDataset আবার ব্যবহার করা হয়েছে যাতে লাইন চার্টের জন্য শিক্ষার্থীদের প্রগ্রেসের ডেটা প্রদর্শন করা যায়।
  3. Histogram Dataset:
    • HistogramDataset ব্যবহার করা হয়েছে পরীক্ষার স্কোরের ফ্রিকোয়েন্সি দেখানোর জন্য। এখানে একটি array ব্যবহার করে পরীক্ষার স্কোরের বিভিন্ন মান যুক্ত করা হয়েছে।
  4. JFreeChart তৈরি করা:
    • ChartFactory.createBarChart() মেথড দিয়ে বার চার্ট, ChartFactory.createLineChart() দিয়ে লাইন চার্ট এবং ChartFactory.createHistogram() দিয়ে হিস্টোগ্রাম তৈরি করা হয়েছে।
  5. ChartPanel:
    • প্রতিটি চার্ট একটি ChartPanel এ বসানো হয়েছে এবং JFrame এর মধ্যে দেখানোর জন্য GridLayout ব্যবহৃত হয়েছে।

4. ফলাফল

কোডটি রান করলে তিনটি গ্রাফ একসাথে প্রদর্শিত হবে:

  • একটি Bar Chart যা শিক্ষার্থীদের স্কোর দেখাবে।
  • একটি Line Chart যা শিক্ষার্থীদের সময়ের সাথে প্রগ্রেস দেখাবে।
  • একটি Histogram যা শিক্ষার্থীদের পরীক্ষার স্কোরের ফ্রিকোয়েন্সি দেখাবে।

সারাংশ

Statistical Data Visualization করতে JFreeChart খুবই কার্যকরী টুল। এটি বার চার্ট, লাইন চার্ট এবং হিস্টোগ্রাম সহ বিভিন্ন ধরনের গ্রাফ তৈরি করতে সাহায্য করে, যা পরিসংখ্যানগত ডেটার ভিজ্যুয়াল রিপ্রেজেন্টেশন সরবরাহ করে। এই গাইডে, আমরা দেখেছি কিভাবে JFreeChart ব্যবহার করে স্ট্যাটিস্টিকাল ডেটা ভিজ্যুয়ালাইজেশন করা যায় এবং ডেটার বিভিন্ন দিক যেমন স্কোর, প্রগ্রেস এবং ফ্রিকোয়েন্সি প্রদর্শন করা হয়। JFreeChart এর মাধ্যমে আপনি আরও গভীর বিশ্লেষণ এবং সিদ্ধান্ত নিতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...