JFreeChart একটি জনপ্রিয় Java লাইব্রেরি যা ডেটা ভিজ্যুয়ালাইজেশনের জন্য ব্যবহার করা হয়। Line Chart ব্যবহার করে আপনি ডেটার পরিবর্তন এবং প্রবণতা দেখতে পারেন। এই গাইডে আমরা জানব কিভাবে Line Chart তৈরি করা যায় এবং কিভাবে Data Points এবং Labels যোগ করা যায়।
1. Line Chart তৈরি করা
প্রথমে, আপনাকে একটি সাধারণ Line Chart তৈরি করতে হবে, এবং তারপর সেখানে Data Points এবং Labels যোগ করতে হবে।
উদাহরণ: Line Chart তৈরি করা
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 LineChartWithLabels {
public static JPanel createChartPanel() {
// ডেটাসেট তৈরি করা
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(
"Line Chart with Data Points and Labels", // Chart Title
"Month", // X-Axis Label
"Value", // Y-Axis Label
dataset // Dataset
);
// Chart Panel তৈরি করে এবং রিটার্ন করা
return new ChartPanel(chart);
}
public static void main(String[] args) {
// JFrame তৈরি করা
JFrame frame = new JFrame("JFreeChart Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(createChartPanel());
frame.pack();
frame.setVisible(true);
}
}
এটি একটি সাধারণ Line Chart তৈরি করবে, যেখানে এক্স-অক্ষের (X-Axis) উপর মাস এবং ওয়াই-অক্ষের (Y-Axis) উপর মান থাকবে।
2. Data Points এবং Labels যোগ করা
Data Points যোগ করতে, আপনাকে DefaultCategoryDataset-এ মানগুলি সন্নিবেশ করতে হবে, যা আমরা উপরে করেছি। কিন্তু, আমরা যদি Data Labels এবং Data Points সঠিকভাবে দেখতে চাই, তাহলে XYItemRenderer ব্যবহার করতে হবে।
Data Labels এবং Data Points কাস্টমাইজ করার জন্য:
- XYPlot এর মধ্যে XYItemRenderer ব্যবহার করা।
- CategoryItemRenderer এবং XYPlot-এর মাধ্যমে Data Labels যোগ করা।
উদাহরণ: Data Points এবং Labels যোগ করা
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
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 LineChartWithLabelsAndPoints {
public static JPanel createChartPanel() {
// ডেটাসেট তৈরি করা
XYSeries series = new XYSeries("Series1");
series.add(1, 1.0);
series.add(2, 4.0);
series.add(3, 3.0);
series.add(4, 5.0);
XYSeriesCollection dataset = new XYSeriesCollection(series);
// Line Chart তৈরি করা
JFreeChart chart = ChartFactory.createXYLineChart(
"Line Chart with Data Points and Labels", // Chart Title
"X-Axis", // X-Axis Label
"Y-Axis", // Y-Axis Label
dataset // Dataset
);
// XYPlot কাস্টমাইজ করা
XYPlot plot = chart.getXYPlot();
XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
// Data Points এবং Line এর জন্য Renderer কাস্টমাইজ করা
renderer.setSeriesLinesVisible(0, true); // Line visibility
renderer.setSeriesShapesVisible(0, true); // Data point visibility
renderer.setSeriesShape(0, new java.awt.geom.Ellipse2D.Double(-3, -3, 6, 6)); // Shape for points
plot.setRenderer(renderer);
// Data Labels যোগ করা
chart.getXYPlot().setDomainPannable(true);
chart.getXYPlot().setRangePannable(true);
// Chart Panel তৈরি করে এবং রিটার্ন করা
return new ChartPanel(chart);
}
public static void main(String[] args) {
// JFrame তৈরি করা
JFrame frame = new JFrame("JFreeChart Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(createChartPanel());
frame.pack();
frame.setVisible(true);
}
}
এই কোডে, XYSeries ব্যবহার করে ডেটা পয়েন্ট যোগ করা হয়েছে এবং XYLineAndShapeRenderer ব্যবহার করে ডেটা পয়েন্টের শেপ এবং লাইন কাস্টমাইজ করা হয়েছে। এখানে ডেটা পয়েন্টের শেপ Ellipse2D (ডট) আকারে নির্ধারণ করা হয়েছে এবং Renderer দিয়ে তাদের দৃশ্যমান করা হয়েছে।
3. Data Labels কাস্টমাইজ করা
ডেটা লেবেলগুলো প্রদর্শন করার জন্য, XYItemLabelGenerator ব্যবহার করা হয়। এটি আপনাকে ডেটা পয়েন্টের উপরে লেবেল যোগ করতে সাহায্য করে।
উদাহরণ: Data Labels কাস্টমাইজ করা
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.labels.XYItemLabelGenerator;
import org.jfree.chart.labels.StandardXYItemLabelGenerator;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import javax.swing.*;
import java.awt.*;
public class LineChartWithCustomLabels {
public static JPanel createChartPanel() {
// ডেটাসেট তৈরি করা
XYSeries series = new XYSeries("Series1");
series.add(1, 1.0);
series.add(2, 4.0);
series.add(3, 3.0);
series.add(4, 5.0);
XYSeriesCollection dataset = new XYSeriesCollection(series);
// Line Chart তৈরি করা
JFreeChart chart = ChartFactory.createXYLineChart(
"Line Chart with Data Labels", // Chart Title
"X-Axis", // X-Axis Label
"Y-Axis", // Y-Axis Label
dataset // Dataset
);
// XYPlot কাস্টমাইজ করা
XYPlot plot = chart.getXYPlot();
XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
// Data Points এবং Line কাস্টমাইজ করা
renderer.setSeriesLinesVisible(0, true);
renderer.setSeriesShapesVisible(0, true);
renderer.setSeriesShape(0, new java.awt.geom.Ellipse2D.Double(-3, -3, 6, 6));
plot.setRenderer(renderer);
// Data Labels যোগ করা
XYItemLabelGenerator generator = new StandardXYItemLabelGenerator();
renderer.setSeriesItemLabelGenerator(0, generator);
renderer.setSeriesItemLabelsVisible(0, true);
// Chart Panel তৈরি করে এবং রিটার্ন করা
return new ChartPanel(chart);
}
public static void main(String[] args) {
// JFrame তৈরি করা
JFrame frame = new JFrame("JFreeChart Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(createChartPanel());
frame.pack();
frame.setVisible(true);
}
}
এই কোডে, StandardXYItemLabelGenerator ব্যবহার করা হয়েছে ডেটা পয়েন্টের উপর লেবেল যোগ করতে। এটি ডেটা পয়েন্টের মান টেক্সট আকারে প্রদর্শন করবে।
সারাংশ
JFreeChart ব্যবহার করে আপনি সহজেই Line Chart তৈরি করতে পারেন এবং সেই চার্টে Data Points ও Labels যোগ করতে পারেন। XYSeries, XYPlot, এবং XYLineAndShapeRenderer ব্যবহার করে আপনি আপনার চার্টের ডেটা পয়েন্ট এবং লাইন কাস্টমাইজ করতে পারবেন। এছাড়া, XYItemLabelGenerator ব্যবহার করে আপনি ডেটা পয়েন্টে কাস্টম লেবেল প্রদর্শন করতে পারবেন। JFreeChart এর এই ক্ষমতা আপনাকে আরও উন্নত এবং বিস্তারিত ডেটা ভিজ্যুয়ালাইজেশন তৈরি করতে সহায়তা করে।
Read more