JFreeChart লাইব্রেরি বিভিন্ন ধরণের Tooltips, Zoom, এবং Pan ফিচার সাপোর্ট করে যা ব্যবহারকারীদের ইন্টারঅ্যাকটিভ চার্ট বিশ্লেষণ করতে সাহায্য করে। এই ফিচারগুলি একটি চার্টকে আরও ব্যবহারকারী-বান্ধব এবং প্রাসঙ্গিক তথ্য প্রদর্শনের জন্য সাহায্য করে। আসুন, এই ফিচারগুলোর ব্যবহারের বিস্তারিত দেখে নিই।
১. Tooltips ব্যবহারের মাধ্যমে চার্টের সাথে ইন্টারঅ্যাকশন
Tooltips হলো একটি ইন্টারঅ্যাকটিভ ফিচার যা যখন আপনি চার্টের উপর মাউস পয়েন্টার আনেন, তখন সংশ্লিষ্ট ডেটা পয়েন্টের অতিরিক্ত তথ্য দেখায়। এটি ডেটা বিশ্লেষণে সহায়ক, কারণ ব্যবহারকারী একটি নির্দিষ্ট ডেটা পয়েন্ট সম্পর্কে বিস্তারিত তথ্য পেতে পারেন।
Tooltips যোগ করার উদাহরণ
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;
import javax.swing.*;
public class TooltipsExample {
public static void main(String[] args) {
// ডেটাসেট তৈরি করা
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(5, "Series1", "Category1");
dataset.addValue(7, "Series1", "Category2");
dataset.addValue(6, "Series1", "Category3");
// Bar Chart তৈরি করা
JFreeChart chart = ChartFactory.createBarChart(
"Bar Chart with Tooltips", // Chart Title
"Category", // X-Axis Label
"Value", // Y-Axis Label
dataset // Dataset
);
// Tooltips সক্ষম করা
chart.getCategoryPlot().getRenderer().setBaseToolTipGenerator((category, dataset1, categoryIndex, seriesIndex) ->
"Category: " + category + ", Value: " + dataset1.getValue(seriesIndex, categoryIndex)
);
// ChartPanel তৈরি এবং JFrame এ প্রদর্শন
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
কোড ব্যাখ্যা:
- এখানে Tooltips ব্যবহারের জন্য
setBaseToolTipGenerator()ব্যবহার করা হয়েছে। যখন ব্যবহারকারী একটি ডেটা পয়েন্টের উপর হোভার করবেন, তখন টুলটিপে ক্যাটেগরি এবং তার মান (Value) প্রদর্শিত হবে।
২. Zoom ফিচার
Zoom ফিচার ব্যবহারকারীদের চার্টের ডেটার উপর জুম ইন বা জুম আউট করার সুযোগ দেয়। এটি বিশেষত XY Charts (যেমন Line Chart বা Scatter Plot) এর জন্য উপকারী যেখানে ডেটা পয়েন্টগুলি একে অপরের কাছাকাছি থাকতে পারে এবং ডেটার বিশদ বিশ্লেষণ করার জন্য জুম করা প্রয়োজন।
Zoom ব্যবহারের উদাহরণ
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import javax.swing.*;
public class ZoomExample {
public static void main(String[] args) {
// XYSeries তৈরি করা
XYSeries series = new XYSeries("Data Points");
series.add(1, 3.0);
series.add(2, 4.0);
series.add(3, 6.0);
series.add(4, 8.0);
series.add(5, 10.0);
// XYSeriesCollection তৈরি করা
XYSeriesCollection dataset = new XYSeriesCollection(series);
// Line Chart তৈরি করা
JFreeChart chart = ChartFactory.createXYLineChart(
"Zoom Example", // Chart Title
"X-Axis", // X-Axis Label
"Y-Axis", // Y-Axis Label
dataset // Dataset
);
// ChartPanel তৈরি এবং Zoom সক্ষম করা
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
chartPanel.setMouseWheelEnabled(true); // Zoom in/out via mouse wheel
// JFrame এ ChartPanel প্রদর্শন করা
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
কোড ব্যাখ্যা:
chartPanel.setMouseWheelEnabled(true);দিয়ে Zoom সক্ষম করা হয়েছে, যা মাউস হুইল দিয়ে চার্টে জুম ইন বা জুম আউট করার সুবিধা প্রদান করে।- এটি XYPlot ভিত্তিক চার্টে ব্যবহার করা যেতে পারে।
৩. Pan ফিচার
Pan ফিচার ব্যবহারকারীদের চার্টের মধ্যে প্যান করতে সহায়ক হয়। অর্থাৎ, ব্যবহারকারী চার্টের উপর মাউস ড্র্যাগ করে ডেটা দেখার জন্য চার্টটি সরাতে পারেন। এটি XY Charts এর জন্য অত্যন্ত কার্যকরী।
Pan ব্যবহারের উদাহরণ
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import javax.swing.*;
public class PanExample {
public static void main(String[] args) {
// XYSeries তৈরি করা
XYSeries series = new XYSeries("Data Points");
series.add(1, 3.0);
series.add(2, 4.0);
series.add(3, 6.0);
series.add(4, 8.0);
series.add(5, 10.0);
// XYSeriesCollection তৈরি করা
XYSeriesCollection dataset = new XYSeriesCollection(series);
// Line Chart তৈরি করা
JFreeChart chart = ChartFactory.createXYLineChart(
"Pan Example", // Chart Title
"X-Axis", // X-Axis Label
"Y-Axis", // Y-Axis Label
dataset // Dataset
);
// ChartPanel তৈরি এবং Pan সক্ষম করা
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
chartPanel.setMouseWheelEnabled(true); // Enable zoom
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
chartPanel.setMousePanEnabled(true); // Enable pan
// JFrame এ ChartPanel প্রদর্শন করা
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
কোড ব্যাখ্যা:
chartPanel.setMousePanEnabled(true);দিয়ে Pan ফিচার সক্রিয় করা হয়েছে, যা ব্যবহারকারীকে মাউস দিয়ে চার্টটি প্যান বা সরাতে দেয়।
সারসংক্ষেপ
Tooltips, Zoom, এবং Pan হল JFreeChart এর ইন্টারঅ্যাকটিভ ফিচারসমূহ যা ব্যবহারকারীদের ডেটা বিশ্লেষণে সহায়ক। এই ফিচারগুলি সহজেই চার্টে যোগ করা যায় এবং এগুলি আপনার চার্টের কার্যকারিতা ও ব্যবহারযোগ্যতা উন্নত করে:
- Tooltips ডেটা পয়েন্টের অতিরিক্ত তথ্য প্রদান করে।
- Zoom ফিচার ব্যবহারকারীদের মাউস হুইল ব্যবহার করে চার্টে জুম ইন বা জুম আউট করার সুযোগ দেয়।
- Pan ফিচার ব্যবহারকারীদের চার্টের মধ্যে প্যান করতে সহায়ক হয়।
এই ফিচারগুলির মাধ্যমে JFreeChart আরও ইন্টারঅ্যাকটিভ এবং ব্যবহারকারী-বান্ধব হয়ে ওঠে।
Read more