JFreeChart একটি শক্তিশালী লাইব্রেরি যা গ্রাফিক্যাল ডাটা ভিজ্যুয়ালাইজেশন সহজ করে। একটি চার্টের গুরুত্বপূর্ণ অংশ হল তার Legend এবং Axis। Legend চার্টের বিভিন্ন সিরিজ বা ডেটা পয়েন্টের পরিচয় দেয়, এবং Axis চার্টের গ্রিড এবং স্কেলিং নির্ধারণ করে। JFreeChart-এ Legend এবং Axis কনফিগারেশন করার মাধ্যমে আপনি চার্টের ভিজ্যুয়াল উপস্থাপনাকে আরও কাস্টমাইজ করতে পারেন।
এই অধ্যায়ে আমরা দেখব কিভাবে JFreeChart-এ Legend এবং Axis কনফিগার করা যায়, এবং কিছু কাস্টমাইজেশন অপশন ব্যবহার করা যায়।
1. Chart এর Legend কনফিগারেশন
Legend চার্টের একটি গুরুত্বপূর্ণ অংশ যা প্রতিটি সিরিজ বা ডেটা পয়েন্টের নাম বা পরিচয় প্রদর্শন করে। JFreeChart এ Legend কনফিগার করা খুবই সহজ এবং এটি ব্যবহারকারীদের চার্টের তথ্য বুঝতে সাহায্য করে।
Legend কনফিগারেশন:
JFreeChart এর Legend কনফিগারেশন করার জন্য আপনি setLegend() মেথড ব্যবহার করতে পারেন। এই মেথডটি আপনাকে লেজেন্ডের অবস্থান, স্টাইল এবং ভিজিবিলিটি কাস্টমাইজ করতে সাহায্য করে।
উদাহরণ: Legend কনফিগারেশন
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.ui.RectangleInsets;
import org.jfree.data.category.DefaultCategoryDataset;
import javax.swing.*;
public class ChartWithLegendExample {
public static void main(String[] args) {
// ডেটাসেট তৈরি করা
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(5, "Series1", "Category1");
dataset.addValue(3, "Series1", "Category2");
dataset.addValue(4, "Series1", "Category3");
// চার্ট তৈরি করা
JFreeChart chart = ChartFactory.createBarChart(
"Sample Bar Chart", // Title
"Category", // X-axis Label
"Value", // Y-axis Label
dataset, // Dataset
PlotOrientation.VERTICAL, // Orientation
true, // Show legend
true, // Tooltips
false // URLs
);
// Legend কনফিগার করা
chart.getLegend().setPosition(RectangleInsets.TOP_RIGHT); // Legend-এর অবস্থান সেট করা
// ChartPanel তৈরি করে JFrame তে যোগ করা
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.add(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
কোডের ব্যাখ্যা:
- Legend Position:
chart.getLegend().setPosition(RectangleInsets.TOP_RIGHT)দিয়ে লেজেন্ডের অবস্থান TOP_RIGHT এ সেট করা হয়েছে।- লেজেন্ডের অবস্থান আপনি TOP_LEFT, BOTTOM_RIGHT, BOTTOM_LEFT ইত্যাদিতে পরিবর্তন করতে পারেন।
- Legend Visibility:
chart.getLegend().setVisible(false)ব্যবহার করে আপনি লেজেন্ডের দৃশ্যমানতা বন্ধ করতে পারেন।
Legend Title:
- লেজেন্ডের শিরোনাম কাস্টমাইজ করা যায়:
chart.getLegend().setItemLabelFont(new Font("Arial", Font.BOLD, 14));
2. Axis কনফিগারেশন
Chart এর Axis (অক্ষ) হলো একটি গুরুত্বপূর্ণ উপাদান, যা চার্টের স্কেলিং এবং ডেটা পয়েন্টের অবস্থান নির্ধারণ করে। JFreeChart এ Axis কনফিগার করার মাধ্যমে আপনি X-axis এবং Y-axis এর লেবেল, স্কেলিং এবং রেঞ্জ কাস্টমাইজ করতে পারেন।
X-Axis এবং Y-Axis কনফিগারেশন:
উদাহরণ: Axis কনফিগারেশন
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.chart.axis.ValueAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import javax.swing.*;
public class ChartWithAxisExample {
public static void main(String[] args) {
// ডেটাসেট তৈরি করা
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(5, "Series1", "Category1");
dataset.addValue(3, "Series1", "Category2");
dataset.addValue(4, "Series1", "Category3");
// চার্ট তৈরি করা
JFreeChart chart = ChartFactory.createBarChart(
"Sample Bar Chart", // Title
"Category", // X-axis Label
"Value", // Y-axis Label
dataset, // Dataset
PlotOrientation.VERTICAL, // Orientation
true, // Show legend
true, // Tooltips
false // URLs
);
// X-Axis কনফিগার করা
CategoryPlot plot = chart.getCategoryPlot();
CategoryAxis xAxis = plot.getDomainAxis();
xAxis.setLabel("Custom X-Axis Label"); // X-Axis এর লেবেল কাস্টমাইজ করা
xAxis.setCategoryLabelPositions(CategoryAxis.UP_45); // X-Axis এর ক্যাটেগরি লেবেল পজিশন পরিবর্তন
// Y-Axis কনফিগার করা
ValueAxis yAxis = plot.getRangeAxis();
yAxis.setLabel("Custom Y-Axis Label"); // Y-Axis এর লেবেল কাস্টমাইজ করা
yAxis.setRange(0, 10); // Y-Axis এর রেঞ্জ সেট করা
// ChartPanel তৈরি করে JFrame তে চার্ট যোগ করা
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.add(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
কোডের ব্যাখ্যা:
- X-Axis কনফিগারেশন:
- CategoryAxis ব্যবহার করে X-Axis কনফিগার করা হয়।
xAxis.setLabel("Custom X-Axis Label")দিয়ে X-Axis এর লেবেল কাস্টমাইজ করা হয়।xAxis.setCategoryLabelPositions(CategoryAxis.UP_45)দিয়ে X-Axis এর ক্যাটেগরি লেবেল ৪৫ ডিগ্রি ঘুরিয়ে দেওয়া হয়।
- Y-Axis কনফিগারেশন:
- ValueAxis ব্যবহার করে Y-Axis কনফিগার করা হয়।
yAxis.setLabel("Custom Y-Axis Label")দিয়ে Y-Axis এর লেবেল কাস্টমাইজ করা হয়।yAxis.setRange(0, 10)দিয়ে Y-Axis এর রেঞ্জ 0 থেকে 10 পর্যন্ত সেট করা হয়।
সারাংশ
JFreeChart-এ Legend এবং Axis কনফিগারেশন অত্যন্ত গুরুত্বপূর্ণ যাতে চার্টটি আরো বিস্তারিত এবং কাস্টমাইজড হতে পারে। Legend কনফিগার করে আপনি সিরিজের পরিচয় এবং প্রদর্শন কাস্টমাইজ করতে পারেন, এবং Axis কনফিগার করে চার্টের স্কেলিং, লেবেল এবং রেঞ্জ পরিবর্তন করতে পারেন। JFreeChart এর শক্তিশালী কাস্টমাইজেশন অপশনগুলি আপনাকে চার্টের প্রতিটি উপাদানকে কাস্টমাইজ করার সুবিধা প্রদান করে।
Read more