Chart Customization এবং Styling

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

451

JFreeChart ব্যবহার করে চার্টের কাস্টমাইজেশন এবং স্টাইলিং করা খুবই সহজ এবং আপনি চার্টের নানা দিক পরিবর্তন করতে পারেন, যেমন রঙ, লেজেন্ড, টাইটেল, অক্ষর, টেক্সট এবং ডেটা পয়েন্টের স্টাইল। এই টিউটোরিয়ালে JFreeChart এর কাস্টমাইজেশন এবং স্টাইলিং করার জন্য কিছু সাধারণ কৌশল দেখানো হবে।


JFreeChart এর কাস্টমাইজেশন

JFreeChart ব্যবহারকারীদের জন্য কিছু গুরুত্বপূর্ণ কাস্টমাইজেশন অপশন প্রদান করে। এই অপশনগুলোর মাধ্যমে আপনি সহজেই চার্টের বিভিন্ন বৈশিষ্ট্য পরিবর্তন করতে পারেন।


১. Chart Title (চার্টের শিরোনাম)

চার্টের শিরোনাম কাস্টমাইজ করতে setTitle() মেথড ব্যবহার করা হয়।

JFreeChart chart = ChartFactory.createLineChart(
    "Yearly Sales Growth",    // টাইটেল
    "Year",                   // এক্স-অক্ষের নাম
    "Sales",                  // ওয়াই-অক্ষের নাম
    dataset                  // ডেটাসেট
);
chart.setTitle("Customized Title");  // কাস্টমাইজড শিরোনাম

এছাড়া, আপনি টাইটেলের ফন্ট, রঙ ইত্যাদি পরিবর্তন করতে পারেন:

chart.getTitle().setFont(new java.awt.Font("Arial", java.awt.Font.BOLD, 16));
chart.getTitle().setPaint(java.awt.Color.BLUE);  // রঙ পরিবর্তন

২. Chart Background (চার্টের পটভূমি)

চার্টের পটভূমি বা ব্যাকগ্রাউন্ড কাস্টমাইজ করতে setBackgroundPaint() মেথড ব্যবহার করা হয়।

chart.setBackgroundPaint(java.awt.Color.LIGHT_GRAY);  // ব্যাকগ্রাউন্ড রঙ পরিবর্তন

৩. Axis Customization (অক্ষের কাস্টমাইজেশন)

X-Axis এবং Y-Axis এর লেবেল, রঙ, এবং ফন্ট কাস্টমাইজ করতে CategoryAxis এবং ValueAxis ব্যবহার করা হয়।

CategoryAxis xAxis = (CategoryAxis) chart.getCategoryPlot().getDomainAxis();
xAxis.setLabelFont(new java.awt.Font("Tahoma", java.awt.Font.ITALIC, 14));
xAxis.setLabelPaint(java.awt.Color.RED);  // এক্স-অক্ষের লেবেল রঙ পরিবর্তন

ValueAxis yAxis = chart.getCategoryPlot().getRangeAxis();
yAxis.setLabelFont(new java.awt.Font("Tahoma", java.awt.Font.PLAIN, 14));
yAxis.setLabelPaint(java.awt.Color.GREEN);  // ওয়াই-অক্ষের লেবেল রঙ পরিবর্তন

৪. Legend (লেজেন্ড)

চার্টের লেজেন্ডের অবস্থান, রঙ, এবং ফন্ট কাস্টমাইজ করতে আপনি LegendTitle ব্যবহার করতে পারেন।

chart.getLegend().setPosition(RectangleEdge.BOTTOM);  // লেজেন্ডের অবস্থান পরিবর্তন
chart.getLegend().setItemFont(new java.awt.Font("Arial", java.awt.Font.PLAIN, 12));  // লেজেন্ডের ফন্ট পরিবর্তন

৫. Data Series Color (ডেটা সিরিজের রঙ)

প্রতিটি ডেটা সিরিজের রঙ পরিবর্তন করতে setSeriesPaint() মেথড ব্যবহার করা হয়।

plot.getRenderer().setSeriesPaint(0, java.awt.Color.BLUE);  // প্রথম সিরিজের রঙ
plot.getRenderer().setSeriesPaint(1, java.awt.Color.RED);   // দ্বিতীয় সিরিজের রঙ

৬. Gridlines এবং Tick Marks (গ্রিডলাইন এবং টিক মার্ক)

চার্টের গ্রিডলাইন এবং টিক মার্কের স্টাইল কাস্টমাইজ করতে setDomainGridlinePaint() এবং setRangeGridlinePaint() মেথড ব্যবহার করা হয়।

plot.setDomainGridlinePaint(java.awt.Color.GRAY);  // এক্স-অক্ষের গ্রিডলাইন রঙ
plot.setRangeGridlinePaint(java.awt.Color.GRAY);   // ওয়াই-অক্ষের গ্রিডলাইন রঙ

plot.setDomainTickBandPaint(java.awt.Color.YELLOW);  // এক্স-অক্ষের টিক মার্ক ব্যান্ড
plot.setRangeTickBandPaint(java.awt.Color.YELLOW);   // ওয়াই-অক্ষের টিক মার্ক ব্যান্ড

৭. Data Labels (ডেটা লেবেল)

JFreeChart ডেটা পয়েন্টের সাথে লেবেল যুক্ত করতে XYItemLabelGenerator ব্যবহার করতে পারেন।

plot.getRenderer().setDefaultItemLabelGenerator(new org.jfree.chart.labels.StandardXYItemLabelGenerator());
plot.getRenderer().setDefaultItemLabelsVisible(true);  // ডেটা লেবেল দৃশ্যমান করা
plot.getRenderer().setDefaultItemLabelPaint(java.awt.Color.MAGENTA);  // লেবেলের রঙ

৮. Plot Customization (প্লট কাস্টমাইজেশন)

আপনি plot অবজেক্টের মাধ্যমে চার্টের অনেক দিক কাস্টমাইজ করতে পারেন, যেমন গ্রিডলাইন, টিক মার্ক, ফন্ট, রঙ ইত্যাদি।

CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setDomainGridlinesVisible(true);  // গ্রিডলাইন প্রদর্শন
plot.setRangeGridlinesVisible(true);   // ওয়াই-অক্ষের গ্রিডলাইন প্রদর্শন

উদাহরণ: কাস্টমাইজড Line Chart

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.data.category.DefaultCategoryDataset;

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

public class CustomizedChartExample {
    public static void main(String[] args) {
        // ডেটাসেট তৈরি করা
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(10, "Sales", "Jan");
        dataset.addValue(20, "Sales", "Feb");
        dataset.addValue(30, "Sales", "Mar");

        // লাইন চার্ট তৈরি করা
        JFreeChart chart = ChartFactory.createLineChart(
                "Monthly Sales Growth",   // টাইটেল
                "Month",                  // এক্স-অক্ষের নাম
                "Sales",                  // ওয়াই-অক্ষের নাম
                dataset                  // ডেটাসেট
        );

        // টাইটেল কাস্টমাইজেশন
        chart.setTitle("Custom Line Chart");
        chart.getTitle().setFont(new Font("Arial", Font.BOLD, 16));
        chart.getTitle().setPaint(Color.BLUE);  // টাইটেলের রঙ

        // প্লট কাস্টমাইজেশন
        CategoryPlot plot = (CategoryPlot) chart.getPlot();
        plot.setDomainGridlinePaint(Color.RED);   // এক্স-অক্ষের গ্রিডলাইন রঙ
        plot.setRangeGridlinePaint(Color.GREEN);  // ওয়াই-অক্ষের গ্রিডলাইন রঙ

        // এক্স-অক্ষের কাস্টমাইজেশন
        CategoryAxis xAxis = plot.getDomainAxis();
        xAxis.setLabelFont(new Font("Tahoma", Font.ITALIC, 14));
        xAxis.setLabelPaint(Color.MAGENTA);  // এক্স-অক্ষের লেবেলের রঙ

        // চার্ট প্যানেল তৈরি করা
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));

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

উপসংহার

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

Content added By

JFreeChart ব্যবহার করে চার্ট তৈরি করার সময় Chart Title, Axis Label, এবং Legends যোগ করা অত্যন্ত গুরুত্বপূর্ণ, কারণ এগুলো চার্টের তথ্য বুঝতে এবং ব্যবহারকারীদের সাহায্য করতে সহায়ক হয়। এই উপাদানগুলো কাস্টমাইজ করে চার্টের দৃশ্যমানতা এবং বোধগম্যতা বৃদ্ধি করা যায়।


Chart Title, Axis Label, এবং Legends যোগ করার উদাহরণ

নিচে একটি সাধারণ Bar Chart উদাহরণ দেওয়া হলো, যেখানে Chart Title, Axis Label, এবং Legends যোগ করা হয়েছে।

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 javax.swing.*;

public class BarChartExample {
    public static void main(String[] args) {
        // ডেটাসেট তৈরি করা
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(50, "Languages", "Java");
        dataset.addValue(30, "Languages", "Python");
        dataset.addValue(20, "Languages", "C++");

        // বার চার্ট তৈরি করা
        JFreeChart barChart = ChartFactory.createBarChart(
                "Programming Language Popularity",  // Chart Title
                "Programming Language",            // X-axis Label
                "Popularity",                      // Y-axis Label
                dataset,                            // Dataset
                PlotOrientation.VERTICAL,           // Chart Orientation (Vertical)
                true,                               // Include Legend
                true,                               // Tooltips
                false                               // URLs
        );

        // চার্ট প্যানেল তৈরি করা
        ChartPanel chartPanel = new ChartPanel(barChart);
        chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));

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

কোড ব্যাখ্যা

  • Chart Title (চার্টের শিরোনাম):
    ChartFactory.createBarChart() মেথডের প্রথম প্যারামিটারটি হচ্ছে Chart Title বা চার্টের শিরোনাম। এখানে, "Programming Language Popularity" শিরোনামটি চার্টের উপরে প্রদর্শিত হবে।
  • Axis Label (অক্ষের লেবেল):
    • X-axis Label (এক্স অক্ষের লেবেল): দ্বিতীয় প্যারামিটার হিসেবে "Programming Language" দেওয়া হয়েছে, যা এক্স-অক্ষের লেবেল হিসেবে কাজ করবে।
    • Y-axis Label (ওয়াই অক্ষের লেবেল): তৃতীয় প্যারামিটার "Popularity" ওয়াই-অক্ষের লেবেল হিসেবে প্রদর্শিত হবে।
  • Legend (লেজেন্ড):
    চতুর্থ প্যারামিটার হিসেবে true দেয়া হয়েছে, যা লেজেন্ডকে সক্রিয় করবে। এটি আপনাকে ডেটার ক্যাটেগরি বা সিরিজের নাম দেখাবে। যেমন এখানে "Languages" লেজেন্ডের আন্ডারে থাকবে।

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

Chart Title:

  • আপনি Chart Title কাস্টমাইজ করতে পারেন। যেমন:

    barChart.setTitle("Custom Title");
    

Axis Labels:

  • এক্স এবং ওয়াই অক্ষের লেবেল কাস্টমাইজ করা যেতে পারে। উদাহরণস্বরূপ:

    barChart.getCategoryPlot().getDomainAxis().setLabel("Custom X-Axis Label");
    barChart.getCategoryPlot().getRangeAxis().setLabel("Custom Y-Axis Label");
    

Legend:

  • আপনি লেজেন্ডের অবস্থান কাস্টমাইজ করতে পারেন। যেমন, লেজেন্ডকে চার্টের উপরে, নিচে, বামে বা ডানে স্থাপন করা যেতে পারে:

    barChart.getLegend().setPosition(RectangleEdge.BOTTOM);  // লেজেন্ডকে নিচে রাখা
    

উপসংহার

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

Content added By

JFreeChart লাইব্রেরি ব্যবহার করে আপনি চার্টের background color এবং plot এর বিভিন্ন সেটিং কাস্টমাইজ করতে পারবেন। এই কাস্টমাইজেশনগুলি আপনাকে চার্টের আর্সটিক্যাল প্রেজেন্টেশন এবং ইউজার ইন্টারফেসকে আরও আকর্ষণীয় এবং ব্যবহারকারী-বান্ধব করে তোলে।

এখানে JFreeChart এর background color এবং plot customization সম্পর্কিত বিভিন্ন কাস্টমাইজেশন উপায় তুলে ধরা হলো।


Background Color Customization

JFreeChart এ চার্টের background color পরিবর্তন করার জন্য আপনি setBackgroundPaint() মেথড ব্যবহার করতে পারেন। এর মাধ্যমে আপনি চার্টের ব্যাকগ্রাউন্ডের রঙ নির্ধারণ করতে পারবেন।

উদাহরণ: Background Color Customization

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.data.category.DefaultCategoryDataset;

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

public class BackgroundColorExample {
    public static void main(String[] args) {
        // ডেটাসেট তৈরি করা
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(10, "Series1", "Category1");
        dataset.addValue(20, "Series1", "Category2");
        dataset.addValue(30, "Series1", "Category3");

        // বার চার্ট তৈরি করা
        JFreeChart chart = ChartFactory.createBarChart(
                "Sample Bar Chart", // চার্টের শিরোনাম
                "Category",         // এক্স-অক্ষের নাম
                "Value",            // ওয়াই-অক্ষের নাম
                dataset,            // ডেটাসেট
                PlotOrientation.VERTICAL, // প্লট অরিয়েন্টেশন
                true,               // লেজেন্ড প্রদর্শন
                true,               // টুলটিপ প্রদর্শন
                false               // URL সমর্থন
        );

        // চার্টের ব্যাকগ্রাউন্ড কালার কাস্টমাইজ করা
        chart.setBackgroundPaint(Color.LIGHT_GRAY);  // চার্টের ব্যাকগ্রাউন্ড লাইট গ্রে

        // প্লট কাস্টমাইজেশন (যেমন: গ্রিডলাইন কালার)
        CategoryPlot plot = (CategoryPlot) chart.getPlot();
        plot.setBackgroundPaint(Color.WHITE);  // প্লটের ব্যাকগ্রাউন্ড সাদা

        // চার্ট প্যানেল তৈরি করা
        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);
    }
}

এখানে, আমরা setBackgroundPaint() মেথড দিয়ে চার্টের ব্যাকগ্রাউন্ড লাইট গ্রে রঙে পরিবর্তন করেছি এবং প্লটের ব্যাকগ্রাউন্ড সাদা রঙে সেট করেছি।


Plot Customization

JFreeChart এ Plot এর কাস্টমাইজেশন দিয়ে আপনি চার্টের ভিতরের বিভিন্ন অংশ যেমন Gridlines, Axis, Background, Legend Position ইত্যাদি কাস্টমাইজ করতে পারবেন।

১. Gridlines Customization

গ্রিডলাইন সাধারণত ডেটার নির্দিষ্ট পয়েন্ট বা ক্যাটেগরির মধ্যে পার্থক্য করতে সাহায্য করে। আপনি এই গ্রিডলাইনগুলির রঙ এবং স্টাইল কাস্টমাইজ করতে পারেন।

// গ্রিডলাইন রঙ পরিবর্তন করা
plot.setRangeGridlinePaint(Color.DARK_GRAY);  // রেঞ্জ গ্রিডলাইন কালার গা dark ন
plot.setDomainGridlinePaint(Color.LIGHT_GRAY); // ডোমেন গ্রিডলাইন কালার হালকা ধূসর

২. Axis Customization

অক্ষের কাস্টমাইজেশন দিয়ে আপনি অক্ষের রঙ, লেবেল, এবং অক্ষের ধরন পরিবর্তন করতে পারবেন।

// এক্স অক্ষের কাস্টমাইজেশন
plot.getDomainAxis().setLabelPaint(Color.BLUE);  // এক্স-অক্ষের লেবেল রঙ নীল
plot.getDomainAxis().setTickLabelPaint(Color.RED);  // এক্স-অক্ষের টিক লেবেল রঙ লাল

// ওয়াই অক্ষের কাস্টমাইজেশন
plot.getRangeAxis().setLabelPaint(Color.GREEN);  // ওয়াই-অক্ষের লেবেল রঙ সবুজ
plot.getRangeAxis().setTickLabelPaint(Color.YELLOW);  // ওয়াই-অক্ষের টিক লেবেল রঙ হলুদ

৩. Legend Position Customization

লেজেন্ডের অবস্থান কাস্টমাইজ করা যায় যাতে এটি চার্টের বিভিন্ন অংশে দেখা যায়, যেমন উপরে, নিচে, ডান বা বামে।

chart.getLegend().setPosition(RectangleEdge.BOTTOM);  // লেজেন্ডটি নিচে প্রদর্শিত হবে

৪. Plot Background Color

প্লটের ব্যাকগ্রাউন্ড পরিবর্তন করে আপনি চার্টের স্টাইল এবং ভিজ্যুয়াল আর্কিটেকচারকে আরো কাস্টমাইজ করতে পারবেন।

plot.setBackgroundPaint(Color.YELLOW);  // প্লটের ব্যাকগ্রাউন্ড হলুদ

৫. Range Axis Tick Marks

প্লটের Range Axis (যেমন Y-Axis) এর টিক মার্কস কাস্টমাইজ করার জন্য:

plot.getRangeAxis().setTickMarkPaint(Color.MAGENTA);  // Y-অক্ষের টিক মার্কস রঙ ম্যাজেন্টা

উপসংহার

JFreeChart লাইব্রেরি দিয়ে Background Color এবং Plot Customization খুবই সহজ এবং শক্তিশালী। আপনি প্লটের ব্যাকগ্রাউন্ড, অক্ষ, গ্রিডলাইন, লেজেন্ড এবং অন্যান্য বিভিন্ন অংশ কাস্টমাইজ করে আপনার চার্টের ডিজাইন এবং কার্যকারিতা উন্নত করতে পারবেন। এই কাস্টমাইজেশনগুলি ডেটা ভিজুয়ালাইজেশনকে আরও বোধগম্য এবং আকর্ষণীয় করে তোলে, যা ব্যবহারকারীদের জন্য একটি উন্নত অভিজ্ঞতা প্রদান করে।

Content added By

JFreeChart লাইব্রেরি ব্যবহার করে আপনি Line Chart, Bar Chart, এবং Pie Chart এর সেগমেন্টের Color এবং Style কাস্টমাইজ করতে পারেন। প্রতিটি চার্টের সেগমেন্টের রঙ, স্টাইল, এবং অন্যান্য বৈশিষ্ট্য পরিবর্তন করে আপনি আপনার চার্টের ভিজ্যুয়ালকে আরও আকর্ষণীয় এবং তথ্যবহুল করে তুলতে পারেন। নিচে প্রতিটি চার্টের সেগমেন্টের Color এবং Style পরিবর্তন করার পদ্ধতি বিস্তারিতভাবে আলোচনা করা হয়েছে।


১. Line Chart এর Color এবং Style পরিবর্তন করা

Line Chart এর লাইন স্টাইল এবং রঙ পরিবর্তন করতে আপনাকে Plot এবং Renderer ব্যবহার করতে হবে।

উদাহরণ: Line Chart এর লাইন Color এবং Style পরিবর্তন করা

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
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 LineChartExample {
    public static void main(String[] args) {
        // ডেটাসেট তৈরি করা
        XYSeries series = new XYSeries("Data Series");
        series.add(1, 5);
        series.add(2, 7);
        series.add(3, 6);
        series.add(4, 8);
        
        XYSeriesCollection dataset = new XYSeriesCollection(series);

        // লাইন চার্ট তৈরি করা
        JFreeChart lineChart = ChartFactory.createXYLineChart(
                "Line Chart Example",    // চার্টের শিরোনাম
                "X-Axis",               // X-Axis লেবেল
                "Y-Axis",               // Y-Axis লেবেল
                dataset,                // ডেটাসেট
                PlotOrientation.VERTICAL, // চার্টের অরিয়েন্টেশন
                true,                   // লেজেন্ড
                true,                   // টুলটিপস
                false                   // URL
        );

        // XYPlot পান এবং Renderer সেট করুন
        XYPlot plot = (XYPlot) lineChart.getPlot();
        XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();

        // লাইন স্টাইল এবং রঙ পরিবর্তন করা
        renderer.setSeriesPaint(0, Color.RED);  // লাইন রঙ লাল হবে
        renderer.setSeriesStroke(0, new BasicStroke(2.0f));  // লাইন স্টাইল সেট করা (গাঢ়)

        plot.setRenderer(renderer);

        // চার্ট প্যানেল তৈরি করা
        ChartPanel chartPanel = new ChartPanel(lineChart);
        chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));

        // JFrame এ চার্ট দেখানো
        JFrame frame = new JFrame("Line Chart Example");
        frame.setContentPane(chartPanel);
        frame.pack();
        frame.setVisible(true);
    }
}

এখানে, XYLineAndShapeRenderer ব্যবহার করে Line Chart এর রঙ এবং স্টাইল পরিবর্তন করা হয়েছে:

  • setSeriesPaint(): লাইন রঙ পরিবর্তন করার জন্য।
  • setSeriesStroke(): লাইন স্টাইল (গাঢ় বা চিকন) পরিবর্তন করার জন্য।

২. Bar Chart এর Color এবং Style পরিবর্তন করা

Bar Chart এর বার গুলোর রঙ এবং স্টাইল কাস্টমাইজ করতে আপনি BarRenderer ব্যবহার করবেন। এতে আপনি Bar Color এবং Bar Width পরিবর্তন করতে পারবেন।

উদাহরণ: Bar Chart এর Bar Color এবং Style পরিবর্তন করা

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.DefaultCategoryDataset;

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

public class BarChartExample {
    public static void main(String[] args) {
        // ডেটাসেট তৈরি করা
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(1.0, "Series1", "Category1");
        dataset.addValue(4.0, "Series1", "Category2");
        dataset.addValue(3.0, "Series1", "Category3");
        dataset.addValue(5.0, "Series1", "Category4");

        // বার চার্ট তৈরি করা
        JFreeChart barChart = ChartFactory.createBarChart(
                "Bar Chart Example",   // চার্টের শিরোনাম
                "Category",            // X-Axis লেবেল
                "Score",               // Y-Axis লেবেল
                dataset,               // ডেটাসেট
                PlotOrientation.VERTICAL, // চার্টের অরিয়েন্টেশন
                true,                  // লেজেন্ড
                true,                  // টুলটিপস
                false                  // URL
        );

        // CategoryPlot পান এবং Renderer সেট করুন
        CategoryPlot plot = (CategoryPlot) barChart.getPlot();
        BarRenderer renderer = new BarRenderer();

        // বার রঙ পরিবর্তন করা
        renderer.setSeriesPaint(0, Color.GREEN);  // বার রঙ সবুজ হবে

        // বার স্টাইল পরিবর্তন করা (যেমন, বার পুরুত্ব)
        renderer.setItemMargin(0.1);  // মার্জিন পরিবর্তন করা

        plot.setRenderer(renderer);

        // চার্ট প্যানেল তৈরি করা
        ChartPanel chartPanel = new ChartPanel(barChart);
        chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));

        // JFrame এ চার্ট দেখানো
        JFrame frame = new JFrame("Bar Chart Example");
        frame.setContentPane(chartPanel);
        frame.pack();
        frame.setVisible(true);
    }
}

এখানে, BarRenderer ব্যবহার করে Bar Chart এর রঙ এবং স্টাইল কাস্টমাইজ করা হয়েছে:

  • setSeriesPaint(): বার গুলোর রঙ পরিবর্তন করা।
  • setItemMargin(): বারগুলোর মধ্যে মার্জিন পরিবর্তন করা।

৩. Pie Chart এর Segment Color এবং Style পরিবর্তন করা

Pie Chart এর সেগমেন্টের রঙ এবং স্টাইল পরিবর্তন করতে আপনি PiePlot ব্যবহার করতে পারেন। এতে সেগমেন্টের রঙ এবং সেগমেন্টের পৃথক পৃথক স্টাইল নির্ধারণ করা যাবে।

উদাহরণ: Pie Chart এর Segment Color এবং Style পরিবর্তন করা

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;

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

public class PieChartExample {
    public static void main(String[] args) {
        // ডেটাসেট তৈরি করা
        DefaultPieDataset dataset = new DefaultPieDataset();
        dataset.setValue("Java", 50);  // "Java" - 50%
        dataset.setValue("Python", 30);  // "Python" - 30%
        dataset.setValue("C++", 20);  // "C++" - 20%

        // পাই চার্ট তৈরি করা
        JFreeChart pieChart = ChartFactory.createPieChart(
                "Programming Language Usage", // চার্টের শিরোনাম
                dataset,                      // ডেটাসেট
                true,                         // লেজেন্ড
                true,                         // টুলটিপস
                false                         // URL
        );

        // PiePlot পান এবং Segment Color পরিবর্তন করা
        PiePlot plot = (PiePlot) pieChart.getPlot();
        plot.setSectionPaint("Java", Color.RED);  // "Java" সেগমেন্ট রঙ লাল হবে
        plot.setSectionPaint("Python", Color.GREEN);  // "Python" সেগমেন্ট রঙ সবুজ হবে
        plot.setSectionPaint("C++", Color.BLUE);  // "C++" সেগমেন্ট রঙ নীল হবে

        // চার্ট প্যানেল তৈরি করা
        ChartPanel chartPanel = new ChartPanel(pieChart);
        chartPanel.setPreferredSize(new java.awt.Dimension(600, 400));

        // JFrame এ চার্ট দেখানো
        JFrame frame = new JFrame("Pie Chart Example");
        frame.setContentPane(chartPanel);
        frame.pack();
        frame.setVisible(true);
    }
}

এখানে, PiePlot ব্যবহার করে Pie Chart এর সেগমেন্ট রঙ পরিবর্তন করা হয়েছে:

  • setSectionPaint(): প্রতিটি সেগমেন্টের রঙ পরিবর্তন করা।

সারসংক্ষেপ

JFreeChart ব্যবহার করে আপনি Line Chart, Bar Chart, এবং Pie Chart এর সেগমেন্টের Color এবং Style সহজেই পরিবর্তন করতে পারেন। উপরের উদাহরণগুলির মাধ্যমে আপনি প্রতিটি চার্টের color customization, line style customization, এবং bar width ইত্যাদি কাস্টমাইজ করতে পারবেন, যা আপনার চার্টকে আরও আকর্ষণীয় এবং তথ্যবহুল করে তোলে।

Content added By

JFreeChart একটি অত্যন্ত কাস্টমাইজযোগ্য চার্ট লাইব্রেরি, যা ডেটার ভিজুয়াল রিপ্রেজেন্টেশন তৈরি করার জন্য ব্যবহৃত হয়। এর মধ্যে Custom Fonts এবং Themes যোগ করার মাধ্যমে আপনি আপনার চার্টগুলিকে আরও আকর্ষণীয় এবং ব্র্যান্ডিং অনুযায়ী কাস্টমাইজ করতে পারেন।


Custom Fonts যোগ করা

JFreeChart এ আপনি সহজেই Custom Fonts যোগ করতে পারেন যাতে চার্টের টেক্সট, লেবেল এবং টাইটেল আপনার প্রয়োজন অনুসারে পরিবর্তিত হয়। Custom Fonts সাধারণত চার্টের ভিজ্যুয়াল লুক উন্নত করার জন্য ব্যবহার করা হয়, এবং এটি সহজেই Java ফন্ট API ব্যবহার করে করা যায়।

Custom Fonts ব্যবহার করার উদাহরণ

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.DefaultCategoryDataset;

import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.io.IOException;

public class CustomFontExample {
    public static void main(String[] args) {
        // ডেটাসেট তৈরি করা
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(1.0, "Category 1", "Jan");
        dataset.addValue(4.0, "Category 1", "Feb");
        dataset.addValue(3.0, "Category 1", "Mar");
        
        // চার্ট তৈরি করা
        JFreeChart chart = ChartFactory.createBarChart(
                "Sales for the First Quarter",   // চার্টের শিরোনাম
                "Month",                         // এক্স-অক্ষের নাম
                "Sales (in units)",              // ওয়াই-অক্ষের নাম
                dataset,                         // ডেটাসেট
                PlotOrientation.VERTICAL,        // প্লট অরিয়েন্টেশন
                true,                            // লেজেন্ড দেখানো
                true,                            // টুলটিপস
                false                            // URL সমর্থন
        );

        // Custom Font সেট করা
        try {
            Font customFont = Font.createFont(Font.TRUETYPE_FONT, new File("path/to/your/font.ttf")).deriveFont(20f);
            chart.getTitle().setFont(customFont);  // টাইটেল ফন্ট সেট করা
            chart.getLegend().setItemFont(customFont); // লেজেন্ড ফন্ট সেট করা

            // প্লটের টেক্সট ফন্ট পরিবর্তন
            CategoryPlot plot = (CategoryPlot) chart.getPlot();
            plot.getDomainGridlinePaint();
            plot.getDomainAxis().setLabelFont(customFont);
            plot.getRangeAxis().setLabelFont(customFont);

        } catch (FontFormatException | IOException e) {
            e.printStackTrace();
        }

        // চার্ট প্যানেল তৈরি করা
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));

        // JFrame এ চার্ট দেখানো
        JFrame frame = new JFrame();
        frame.setContentPane(chartPanel);
        frame.pack();
        frame.setVisible(true);
    }
}

ব্যাখ্যা:

  • Font.createFont(): এখানে আমরা একটি TrueType Font ফাইল ব্যবহার করে Custom Font তৈরি করেছি। আপনাকে আপনার ফন্ট ফাইলের সঠিক পাথ প্রদান করতে হবে।
  • setFont(): এটি টাইটেল, লেজেন্ড এবং অ্যাক্সিস লেবেল ফন্ট পরিবর্তন করতে ব্যবহৃত হয়।

Themes যোগ করা

JFreeChart এ থিম যোগ করার মাধ্যমে আপনি আপনার চার্টের ডিজাইন, রঙ এবং অন্যান্য উপাদান কাস্টমাইজ করতে পারেন। আপনি Plot এবং Renderer এর কাস্টম স্টাইল তৈরি করে সহজেই থিম তৈরি করতে পারেন।

Theme কাস্টমাইজেশন উদাহরণ

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.plot.PlotOrientation;
import org.jfree.chart.plot.SpiralPlot;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.DefaultCategoryDataset;

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

public class CustomThemeExample {
    public static void main(String[] args) {
        // ডেটাসেট তৈরি করা
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        dataset.addValue(10.0, "Category 1", "January");
        dataset.addValue(20.0, "Category 1", "February");
        dataset.addValue(30.0, "Category 1", "March");
        
        // চার্ট তৈরি করা
        JFreeChart chart = ChartFactory.createBarChart(
                "Monthly Sales",  // চার্টের শিরোনাম
                "Month",          // এক্স-অক্ষের নাম
                "Sales",          // ওয়াই-অক্ষের নাম
                dataset,          // ডেটাসেট
                PlotOrientation.VERTICAL, // প্লট অরিয়েন্টেশন
                true,             // লেজেন্ড প্রদর্শন
                true,             // টুলটিপস
                false             // URL সমর্থন
        );

        // Custom Theme কাস্টমাইজেশন
        CategoryPlot plot = (CategoryPlot) chart.getPlot();
        plot.setDomainGridlinePaint(Color.GRAY); // গ্রিডলাইন রঙ পরিবর্তন
        plot.setRangeGridlinePaint(Color.GRAY);  // গ্রিডলাইন রঙ পরিবর্তন
        
        // ব্যার রেন্ডারার কাস্টমাইজ করা
        BarRenderer renderer = (BarRenderer) plot.getRenderer();
        renderer.setSeriesPaint(0, new Color(0, 128, 255)); // সিরিজের রঙ পরিবর্তন
        
        // চার্টের টাইটেল কাস্টমাইজ করা
        chart.setTitle(new TextTitle("Customized Theme Chart", new Font("Serif", Font.BOLD, 20), Color.RED, RectangleAnchor.TOP_CENTER));
        
        // চার্ট প্যানেল তৈরি করা
        ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));

        // JFrame এ চার্ট দেখানো
        JFrame frame = new JFrame();
        frame.setContentPane(chartPanel);
        frame.pack();
        frame.setVisible(true);
    }
}

ব্যাখ্যা:

  • setDomainGridlinePaint() এবং setRangeGridlinePaint(): এটি গ্রিডলাইনের রঙ পরিবর্তন করতে ব্যবহৃত হয়।
  • BarRenderer.setSeriesPaint(): এটি নির্দিষ্ট সিরিজের রঙ পরিবর্তন করতে ব্যবহৃত হয়।
  • TextTitle: টাইটেল কাস্টমাইজ করার জন্য ফন্ট, রঙ এবং অবস্থান সেট করা হয়েছে।

Themes এর সাহায্যে আরও কাস্টমাইজেশন

  1. Color Palette: চার্টের রঙগুলি পরিবর্তন করতে পারেন আপনার ডিজাইন অনুসারে। যেমন, বিভিন্ন সিরিজের জন্য আলাদা রঙ ব্যবহার করা।
  2. Gridlines: গ্রিডলাইনের রঙ এবং স্টাইল কাস্টমাইজ করা যায় যাতে চার্টের ভিজ্যুয়াল লুক উন্নত হয়।
  3. Axes: এক্স-অক্ষ এবং ওয়াই-অক্ষের রঙ এবং স্টাইল পরিবর্তন করা সম্ভব।
  4. Legend: লেজেন্ডের অবস্থান এবং স্টাইল পরিবর্তন করা যায়।

সারসংক্ষেপ

JFreeChartCustom Fonts এবং Themes যোগ করা খুবই সহজ। আপনি Font.createFont() ব্যবহার করে আপনার চার্টের বিভিন্ন অংশে Custom Fonts সেট করতে পারেন। এছাড়া, Themes যোগ করে চার্টের ভিজ্যুয়াল ডিজাইন পরিবর্তন করা যায়, যেমন রঙ, গ্রিডলাইন, লেজেন্ড, এবং অন্যান্য উপাদান কাস্টমাইজ করা। এই কাস্টমাইজেশনগুলি আপনার চার্টকে আরও আকর্ষণীয় এবং ব্যবহারকারী-বান্ধব করতে সাহায্য করবে।

Content added By
Promotion

Are you sure to start over?

Loading...