JFreeChart লাইব্রেরি Java প্রোগ্রামিং ভাষায় চার্ট এবং গ্রাফ তৈরি করার জন্য ব্যবহৃত হয়। একে ব্যবহার করে আপনি বিভিন্ন ধরনের চার্ট তৈরি করতে পারেন, যেমন লাইন চার্ট, বার চার্ট, পাই চার্ট ইত্যাদি। চার্টের মধ্যে axes (অক্ষ) এবং labels (লেবেল) যোগ করা খুবই গুরুত্বপূর্ণ, কারণ এগুলি ডেটাকে সঠিকভাবে ব্যাখ্যা এবং ভিজ্যুয়ালাইজ করতে সাহায্য করে। এই গাইডে আমরা দেখব কিভাবে JFreeChart ব্যবহার করে Axes এবং Labels যোগ করা যায়।
1. Axes (অক্ষ) সম্পর্কে ধারণা
Axes বা অক্ষগুলি চার্টের মধ্যে X এবং Y অ্যাক্সিস হিসেবে কাজ করে, যা ডেটার মানের প্রতিনিধিত্ব করে। X অ্যাক্সিস সাধারণত ক্যাটেগরি বা সময়কে উপস্থাপন করে এবং Y অ্যাক্সিস সাধারণত পরিমাণ বা মান উপস্থাপন করে।
JFreeChart আপনাকে X এবং Y অ্যাক্সিস কাস্টমাইজ করার সুবিধা দেয়, যেমন:
- Tick Marks (অক্ষের চিহ্ন)
- Tick Labels (অক্ষের লেবেল)
- Axis Labels (অক্ষের শিরোনাম)
2. Labels (লেবেল) সম্পর্কে ধারণা
Labels হল চার্টের অংশ যা ডেটা পয়েন্টগুলিকে চিহ্নিত করে। এগুলি X এবং Y অ্যাক্সিসে প্রদর্শিত হয় এবং ডেটার মান বা ক্যাটেগরি বোঝায়। JFreeChart-এ আপনি X এবং Y অক্ষের জন্য লেবেল এবং বিভিন্ন সিরিজের জন্য লেবেল যোগ করতে পারেন।
3. Axes এবং Labels কাস্টমাইজেশন
JFreeChart ব্যবহার করে আপনি সহজেই Axes এবং Labels কাস্টমাইজ করতে পারেন। এই কাস্টমাইজেশন চার্টের ভিজ্যুয়াল অ্যাপিয়ারেন্স উন্নত করতে সাহায্য করে।
3.1 X এবং Y অ্যাক্সিস এর Labels যোগ করা
উদাহরণ: Line Chart এর জন্য Axes এবং Labels যোগ করা
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.ValueMarker;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.Plot;
import javax.swing.*;
public class LineChartWithAxesLabels {
public static void main(String[] args) {
// ডেটাসেট তৈরি
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(
"Sales Data", // Chart Title
"Month", // X-Axis Label
"Sales", // Y-Axis Label
dataset, // Dataset
PlotOrientation.VERTICAL,
true, // Include legend
true, // Tooltips
false // URLs
);
// X ও Y অক্ষের কাস্টমাইজেশন
CategoryPlot plot = (CategoryPlot) chart.getPlot();
CategoryAxis xAxis = plot.getDomainAxis();
xAxis.setLabel("Months"); // X-Axis Label
xAxis.setTickLabelFont(new java.awt.Font("Serif", java.awt.Font.PLAIN, 12));
NumberAxis yAxis = (NumberAxis) plot.getRangeAxis();
yAxis.setLabel("Revenue"); // Y-Axis Label
yAxis.setAutoRangeIncludesZero(true);
// ChartPanel তৈরি
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.getContentPane().add(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
ব্যাখ্যা:
- Dataset তৈরি:
DefaultCategoryDatasetব্যবহার করে একটি লাইন চার্টের জন্য ডেটাসেট তৈরি করা হয়েছে। এখানে "Series1" নামে একটি সিরিজ এবং "Jan", "Feb", "Mar", "Apr" মাসগুলি ক্যাটেগরি হিসেবে যোগ করা হয়েছে।
- Chart তৈরি:
ChartFactory.createLineChart()মেথড ব্যবহার করে একটি লাইন চার্ট তৈরি করা হয়েছে। এখানে X-Axis এর লেবেল হিসেবে "Month" এবং Y-Axis এর লেবেল হিসেবে "Sales" দেওয়া হয়েছে।
- Axes কাস্টমাইজেশন:
- X অ্যাক্সিস এবং Y অ্যাক্সিসের লেবেল এবং টিক লেবেল কাস্টমাইজ করা হয়েছে।
xAxis.setLabel("Months"): X অ্যাক্সিসের লেবেল সেট করা হয়েছে।yAxis.setLabel("Revenue"): Y অ্যাক্সিসের লেবেল সেট করা হয়েছে।
- X অ্যাক্সিস এবং Y অ্যাক্সিসের লেবেল এবং টিক লেবেল কাস্টমাইজ করা হয়েছে।
- ChartPanel:
ChartPanelতৈরি করা হয়েছে এবং সেটি JFrame এ প্রদর্শন করা হয়েছে, যাতে চার্টটি GUI তে প্রদর্শিত হয়।
3.2 Tick Marks এবং Tick Labels কাস্টমাইজেশন
Tick Marks এবং Tick Labels অ্যাক্সিসে ব্যবহারকারীদের জন্য মান বা ক্যাটেগরি দেখানোর কাজ করে। আপনি এগুলির ফন্ট, আকার বা রং পরিবর্তন করতে পারেন।
উদাহরণ:
xAxis.setTickLabelFont(new java.awt.Font("Serif", java.awt.Font.BOLD, 14)); // X-axis tick labels customization
yAxis.setTickLabelFont(new java.awt.Font("Arial", java.awt.Font.PLAIN, 12)); // Y-axis tick labels customization
এটি X এবং Y অ্যাক্সিসে টিক লেবেলগুলির ফন্ট এবং আকার কাস্টমাইজ করবে।
3.3 Value Marker যোগ করা
আপনি আপনার চার্টে value markers যোগ করতে পারেন, যা বিশেষ ডেটা পয়েন্ট বা মান দেখানোর জন্য ব্যবহার করা হয়।
উদাহরণ: Value Marker যোগ করা
ValueMarker marker = new ValueMarker(4.0); // 4.0 মানের একটি marker তৈরি
marker.setLabel("Threshold");
marker.setLabelFont(new java.awt.Font("Serif", java.awt.Font.BOLD, 12));
plot.addDomainMarker(marker); // X অ্যাক্সিসে marker যোগ করা
এটি X অ্যাক্সিসে 4.0 মানে একটি marker যোগ করবে এবং সেটি "Threshold" লেবেল সহ প্রদর্শিত হবে।
4. Conclusion
Axes এবং Labels হল JFreeChart এর গুরুত্বপূর্ণ অংশ, যা ডেটা ভিজুয়ালাইজেশনে সহায়ক। আপনি JFreeChart-এ X এবং Y অ্যাক্সিসের লেবেল এবং টিক লেবেল কাস্টমাইজ করতে পারেন এবং Value Markers যোগ করতে পারেন যাতে বিশেষ ডেটা পয়েন্টের গুরুত্ব নির্দেশ করা যায়। CategoryAxis, NumberAxis, এবং ValueMarker এর মাধ্যমে আপনি অ্যাক্সিস এবং চার্ট কাস্টমাইজেশন করতে পারেন। JFreeChart এর এই কাস্টমাইজেশন ফিচারগুলো আপনার চার্টকে আরও স্পষ্ট এবং তথ্যপূর্ণ করে তোলে।
Read more