JFreeChart লাইব্রেরি ব্যবহার করে আপনি Multiple Series সহ লাইন চার্ট তৈরি করতে পারেন, যেখানে একাধিক সিরিজ একই গ্রাফে প্রদর্শিত হবে। এটি সাধারণত একাধিক ডেটা পয়েন্টের মধ্যে সম্পর্ক বুঝতে সাহায্য করে এবং বিভিন্ন সিরিজের তুলনা করা সহজ হয়। যেমন, আপনি যদি একাধিক দেশের শেয়ার মার্কেটের তথ্য বা বিভিন্ন সময়ের জন্য বিক্রয় ডেটা প্রদর্শন করতে চান, তাহলে Multiple Series সহ লাইন চার্ট উপকারী হতে পারে।
এই গাইডে, আমরা দেখব কিভাবে Multiple Series সহ একটি লাইন চার্ট তৈরি করা যায়।
1. JFreeChart কনফিগারেশন
প্রথমে নিশ্চিত করুন যে আপনি JFreeChart এবং JCommon লাইব্রেরি আপনার প্রজেক্টে যোগ করেছেন। যদি আপনি Maven ব্যবহার করেন, তবে আপনার pom.xml ফাইলে নিচের ডিপেনডেন্সি যোগ করতে পারেন:
<dependency>
<groupId>org.jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.5.3</version>
</dependency>
<dependency>
<groupId>org.jfree</groupId>
<artifactId>jcommon</artifactId>
<version>1.0.24</version>
</dependency>
এছাড়া, JAR ফাইল ডাউনলোড করে আপনার প্রজেক্টে যোগ করতে পারেন।
2. Multiple Series সহ Line Chart তৈরি করা
এখন, আমরা Multiple Series সহ একটি লাইন চার্ট তৈরি করব, যেখানে দুইটি সিরিজ থাকবে, যেমন: Sales এবং Expenses।
কোড উদাহরণ:
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import javax.swing.*;
public class MultipleLineChartExample {
public static void main(String[] args) {
// Sales data
XYSeries salesSeries = new XYSeries("Sales");
salesSeries.add(1, 250);
salesSeries.add(2, 300);
salesSeries.add(3, 400);
salesSeries.add(4, 500);
salesSeries.add(5, 600);
salesSeries.add(6, 700);
// Expenses data
XYSeries expensesSeries = new XYSeries("Expenses");
expensesSeries.add(1, 200);
expensesSeries.add(2, 250);
expensesSeries.add(3, 300);
expensesSeries.add(4, 350);
expensesSeries.add(5, 400);
expensesSeries.add(6, 450);
// Create dataset with multiple series
XYSeriesCollection dataset = new XYSeriesCollection();
dataset.addSeries(salesSeries);
dataset.addSeries(expensesSeries);
// Create line chart
JFreeChart chart = ChartFactory.createXYLineChart(
"Sales vs Expenses", // Chart title
"Month", // X-Axis Label
"Amount", // Y-Axis Label
dataset, // Dataset
PlotOrientation.VERTICAL, // Plot orientation
true, // Include legend
true, // Tooltips
false // URLs
);
// Customize chart panel
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
// Create JFrame to display the chart
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
3. কোডের ব্যাখ্যা
- XYSeries:
- প্রথমে, আমরা দুটি XYSeries তৈরি করেছি: একটি Sales ডেটার জন্য এবং আরেকটি Expenses ডেটার জন্য। প্রতিটি সিরিজের জন্য আমরা ডেটা পয়েন্ট যোগ করেছি। উদাহরণস্বরূপ, salesSeries-এ 1 থেকে 6 পর্যন্ত বিভিন্ন মাসের বিক্রয়ের ডেটা পয়েন্ট রয়েছে, এবং expensesSeries-এ সেই মাসগুলোর খরচের ডেটা রয়েছে।
- XYSeriesCollection:
- এরপর আমরা XYSeriesCollection ব্যবহার করেছি, যা একটি ডেটাসেট তৈরি করে এবং তাতে salesSeries এবং expensesSeries যোগ করেছি।
- Line Chart Creation:
ChartFactory.createXYLineChart()মেথড ব্যবহার করে আমরা একটি লাইন চার্ট তৈরি করেছি, যেখানে X-Axis এ মাস (1, 2, 3, ...) এবং Y-Axis এ মূল্য (বিক্রয় এবং খরচ) দেখানো হয়েছে।
- ChartPanel:
- ChartPanel ব্যবহার করে আমরা চার্টটি JFrame-এ প্রদর্শন করেছি। এটি একটি প্যানেল যা চার্টের ভিজ্যুয়াল প্রেজেন্টেশন হ্যান্ডেল করে।
- JFrame:
- JFrame তৈরি করে ChartPanel যোগ করা হয়েছে এবং এটি GUI তে প্রদর্শিত হবে।
4. আউটপুট
এই কোডটি চালালে একটি Line Chart প্রদর্শিত হবে যেখানে দুটি সিরিজ থাকবে: একটি Sales এবং আরেকটি Expenses। এই চার্টে X-Axis এ মাস এবং Y-Axis এ মূল্য থাকবে। আপনি দুটি সিরিজের মধ্যে পার্থক্য এবং সম্পর্ক সহজেই দেখতে পারবেন।
5. কাস্টমাইজেশন
JFreeChart ব্যবহার করে আপনি চার্টের বিভিন্ন বৈশিষ্ট্য কাস্টমাইজ করতে পারেন, যেমন:
রঙ পরিবর্তন: আপনি সিরিজের রঙ পরিবর্তন করতে পারেন।
plot.getRenderer().setSeriesPaint(0, Color.BLUE); // Sales Series Color plot.getRenderer().setSeriesPaint(1, Color.RED); // Expenses Series Colorলেবেল কাস্টমাইজেশন: X-Axis এবং Y-Axis লেবেল কাস্টমাইজ করা যায়।
plot.getDomainAxis().setLabelFont(new Font("Serif", Font.BOLD, 12)); // X-Axis Label Font plot.getRangeAxis().setLabelFont(new Font("Serif", Font.BOLD, 12)); // Y-Axis Label Fontচার্টের শিরোনাম পরিবর্তন: আপনি চার্টের শিরোনাম কাস্টমাইজ করতে পারেন।
chart.setTitle(new TextTitle("Sales vs Expenses Over Time", new Font("Serif", Font.BOLD, 18)));একাধিক Y-Axis: আপনি বিভিন্ন সিরিজের জন্য আলাদা Y-Axis ব্যবহার করতে পারেন।
plot.setRangeAxis(1, new NumberAxis("Expenses")); plot.setDataset(1, expensesDataset); plot.mapDatasetToRangeAxis(1, 1);
সারাংশ
JFreeChart ব্যবহার করে আপনি Multiple Series সহ Line Chart তৈরি করতে পারেন, যা একাধিক ডেটা সিরিজকে একটি একক গ্রাফে তুলনা করার জন্য সহায়ক। এটি ডেটার সম্পর্ক এবং পরিবর্তন বুঝতে সাহায্য করে। এই গাইডে, আমরা দুটি সিরিজের ডেটা (Sales এবং Expenses) সহ একটি লাইন চার্ট তৈরি করার পদ্ধতি দেখেছি এবং JFreeChart এর কাস্টমাইজেশন অপশনগুলোও আলোচনা করেছি। JFreeChart একটি শক্তিশালী এবং নমনীয় টুল যা Java প্রোগ্রামে ডেটা ভিজ্যুয়ালাইজেশনের জন্য ব্যবহার করা যেতে পারে।
Read more