Multiple Axes বা Secondary Axis যোগ করার মাধ্যমে আপনি JFreeChart-এ একাধিক অক্ষ ব্যবহার করতে পারেন। এটি বিশেষভাবে কার্যকরী যখন আপনার চার্টে ভিন্ন ভিন্ন স্কেল এর ডেটা একসাথে প্রদর্শন করতে হয়। Primary Axis এবং Secondary Axis ব্যবহার করে, আপনি একে অপরের থেকে আলাদা স্কেল বা মানের ডেটা তুলনা করতে পারবেন।
Primary Axis এবং Secondary Axis এর ব্যবহার
- Primary Axis: এটি সাধারণত চার্টের মূল অক্ষ, যা প্রথম ডেটা সিরিজের জন্য ব্যবহৃত হয়।
- Secondary Axis: এটি একটি অতিরিক্ত অক্ষ, যা দ্বিতীয় ডেটা সিরিজের জন্য ব্যবহৃত হয় এবং এটি সাধারণত আলাদা স্কেল (যেমন, অন্য একক বা পরিমাপ) ব্যবহার করে।
Multiple Axes (Secondary Axis) যোগ করার উদাহরণ
উদাহরণ: Multiple Axes (Secondary Axis) যোগ করা
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.axis.NumberAxis;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import javax.swing.*;
import java.awt.*;
public class MultipleAxesExample {
public static void main(String[] args) {
// Primary Dataset তৈরি করা
XYSeries series1 = new XYSeries("Series 1");
series1.add(1, 5);
series1.add(2, 7);
series1.add(3, 9);
series1.add(4, 12);
XYSeriesCollection dataset1 = new XYSeriesCollection(series1);
// Secondary Dataset তৈরি করা
XYSeries series2 = new XYSeries("Series 2");
series2.add(1, 100);
series2.add(2, 200);
series2.add(3, 300);
series2.add(4, 400);
XYSeriesCollection dataset2 = new XYSeriesCollection(series2);
// XYLineChart তৈরি করা
JFreeChart chart = ChartFactory.createXYLineChart(
"Multiple Axes Example", // Chart Title
"X-Axis", // X-Axis Label
"Primary Y-Axis", // Primary Y-Axis Label
dataset1, // Primary Dataset
PlotOrientation.VERTICAL, // Chart Orientation
true, // Show Legend
true, // Show Tooltips
false // Show URLs
);
// Plot তৈরি করা এবং Secondary Axis যোগ করা
XYPlot plot = chart.getXYPlot();
// Secondary Y-Axis তৈরি করা
NumberAxis secondaryAxis = new NumberAxis("Secondary Y-Axis");
secondaryAxis.setAutoRangeIncludesZero(false);
// Secondary Dataset যোগ করা
plot.setDataset(1, dataset2);
plot.setRangeAxis(1, secondaryAxis);
plot.mapDatasetToRangeAxis(1, 1); // Mapping secondary dataset to secondary axis
// ChartPanel তৈরি করা
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(800, 600));
// JFrame এ Chart প্রদর্শন করা
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(chartPanel, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
}
কোড ব্যাখ্যা:
- Primary Dataset: প্রথম ডেটাসেটটি
XYSeriesএর মাধ্যমে তৈরি করা হয়েছে, যা Primary Y-Axis এর সাথে সম্পর্কিত। - Secondary Dataset: দ্বিতীয় ডেটাসেটটি একটি ভিন্ন স্কেল বা পরিমাপের জন্য তৈরি করা হয়েছে এবং এটি Secondary Y-Axis এর সাথে সম্পর্কিত।
- Secondary Axis:
NumberAxisব্যবহার করে একটি Secondary Y-Axis তৈরি করা হয়েছে এবং এটিকে Secondary Dataset এর সাথে ম্যাপ করা হয়েছে। - XYPlot: XYPlot ব্যবহার করে দুটি ডেটাসেটের জন্য দুটি আলাদা অক্ষ (Primary এবং Secondary) নির্ধারণ করা হয়েছে।
Multiple Axes (Secondary Axis) এর কাস্টমাইজেশন
Secondary Axis কাস্টমাইজ করা: আপনি Secondary Axis এর রেঞ্জ, স্কেল, লেবেল ইত্যাদি কাস্টমাইজ করতে পারেন।
secondaryAxis.setRange(0, 500); // Secondary Axis এর রেঞ্জ সেট করা secondaryAxis.setLabelFont(new Font("Arial", Font.BOLD, 14)); // লেবেল ফন্ট কাস্টমাইজ করাপ্রতিটি সিরিজের জন্য আলাদা রঙ এবং স্টাইল: প্রতিটি সিরিজের জন্য আলাদা রঙ এবং লাইন স্টাইল সেট করা যেতে পারে।
plot.getRenderer(0).setSeriesPaint(0, Color.RED); // Primary dataset এর রঙ পরিবর্তন করা plot.getRenderer(1).setSeriesPaint(0, Color.BLUE); // Secondary dataset এর রঙ পরিবর্তন করাAxis Labels কাস্টমাইজ করা: একাধিক অক্ষের লেবেল কাস্টমাইজ করা যেতে পারে, যেমন ফন্ট এবং রঙ পরিবর্তন।
plot.getDomainAxis().setLabelFont(new Font("Serif", Font.ITALIC, 12)); // X-Axis ফন্ট পরিবর্তন করা plot.getRangeAxis().setLabelFont(new Font("Serif", Font.BOLD, 14)); // Primary Y-Axis ফন্ট পরিবর্তন করা secondaryAxis.setLabelFont(new Font("Serif", Font.PLAIN, 12)); // Secondary Y-Axis ফন্ট পরিবর্তন করা
Multiple Axes এর ব্যবহার কেন গুরুত্বপূর্ণ?
Multiple Axes ব্যবহার করে আপনি একাধিক ভিন্ন ডেটাসেট বা ভিন্ন স্কেল যুক্ত ডেটা প্রদর্শন করতে পারবেন। উদাহরণস্বরূপ:
- Time Series বিশ্লেষণ করার সময়, আপনি একদিকে তাপমাত্রা এবং অন্যদিকে বৃষ্টিপাতের পরিমাণ দেখাতে পারেন, যেখানে দুটি ভিন্ন স্কেল ব্যবহৃত হবে।
- ফাইনান্সিয়াল চার্ট-এ, আপনি একটি অক্ষে স্টক প্রাইস এবং অন্য অক্ষে ট্রেড ভলিউম দেখাতে পারবেন, যা দুটি ভিন্ন স্কেল অনুসরণ করে।
সারসংক্ষেপ
JFreeChart-এ Multiple Axes (Secondary Axis) যোগ করে আপনি একাধিক ভিন্ন স্কেল বা ডেটাসেট প্রদর্শন করতে পারেন। এটি ডেটার বিশ্লেষণ এবং তুলনা করার জন্য একটি কার্যকরী পদ্ধতি। XYPlot এবং NumberAxis ব্যবহার করে আপনি Primary Axis এবং Secondary Axis কাস্টমাইজ করে ডেটা ভিজুয়ালাইজেশন করতে পারবেন, এবং এটি বিভিন্ন ধরনের ডেটা বিশ্লেষণে সহায়ক।
Read more