JFreeChart একটি শক্তিশালী লাইব্রেরি যা বিভিন্ন ধরনের চার্ট তৈরি করতে সহায়তা করে। JFreeChart-এ আপনি সহজেই চার্টের বিভিন্ন অংশ কাস্টমাইজ করতে পারবেন, যেমন Chart Title, Background, এবং Plot Area। এসব স্টাইলিংয়ের মাধ্যমে আপনি আপনার চার্টকে আরও আকর্ষণীয় এবং ব্যবহার উপযোগী করতে পারেন। এখানে, আমরা Chart Title, Background, এবং Plot Area কাস্টমাইজ করার বিভিন্ন উপায় দেখব।
1. Chart Title Styling
Chart Title হল চার্টের শিরোনাম যা সাধারণত চার্টের উপরে প্রদর্শিত হয়। JFreeChart-এ আপনি শিরোনামের ফন্ট, রঙ, অবস্থান ইত্যাদি কাস্টমাইজ করতে পারেন।
Chart Title Styling কিভাবে করা যায়:
- Font পরিবর্তন: শিরোনামের ফন্ট পরিবর্তন করতে পারেন।
- রঙ পরিবর্তন: শিরোনামের রঙ কাস্টমাইজ করা যায়।
- অবস্থান পরিবর্তন: শিরোনামের অবস্থানও কাস্টমাইজ করা যায়।
উদাহরণ:
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.category.DefaultCategoryDataset;
import org.jfree.chart.title.TextTitle;
import java.awt.*;
public class ChartTitleExample {
public static void main(String[] args) {
// ডেটাসেট তৈরি করা
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(5, "Series1", "Category1");
dataset.addValue(10, "Series1", "Category2");
// Chart তৈরি করা
JFreeChart chart = ChartFactory.createBarChart(
"Original Title", // Default Title
"Category", // X-axis Label
"Value", // Y-axis Label
dataset, // Dataset
PlotOrientation.VERTICAL, // Orientation
true, // Include legend
true // Tooltips
);
// Chart Title কাস্টমাইজ করা
chart.setTitle(new TextTitle(
"Custom Chart Title", // New Title
new Font("Arial", Font.BOLD, 16), // Font style and size
Color.BLUE, // Title color
TextTitle.DEFAULT_POSITION // Title position (default)
));
// ChartPanel তৈরি করা
ChartPanel panel = new ChartPanel(chart);
panel.setPreferredSize(new java.awt.Dimension(800, 600));
// JFrame তৈরি করে চার্ট প্যানেল যোগ করা
javax.swing.JFrame frame = new javax.swing.JFrame();
frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
ব্যাখ্যা:
TextTitleব্যবহার করে আমরা চার্টের টাইটেল কাস্টমাইজ করেছি, যেমন ফন্ট, রঙ, এবং আকার।new Font("Arial", Font.BOLD, 16)ফন্ট কাস্টমাইজ করতে ব্যবহৃত হয়েছে।
2. Background Styling
JFreeChart এর ব্যাকগ্রাউন্ড অংশটি পুরো চার্টের পেছনের অংশ হিসেবে থাকে। আপনি এটি কাস্টমাইজ করে চার্টের দেখভাল আরও আকর্ষণীয় করতে পারেন।
Background Styling কিভাবে করা যায়:
- Chart Background: পুরো চার্টের ব্যাকগ্রাউন্ডের রঙ পরিবর্তন করতে পারেন।
- Plot Area Background: চার্টের প্লট এরিয়া (যেখানে গ্রাফ বা ডাটা রেন্ডার করা হয়) এর ব্যাকগ্রাউন্ড কাস্টমাইজ করা যায়।
উদাহরণ:
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;
import java.awt.*;
public class BackgroundExample {
public static void main(String[] args) {
// ডেটাসেট তৈরি করা
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(5, "Series1", "Category1");
dataset.addValue(10, "Series1", "Category2");
// Chart তৈরি করা
JFreeChart chart = ChartFactory.createBarChart(
"Customized Chart", // Title
"Category", // X-axis Label
"Value", // Y-axis Label
dataset, // Dataset
PlotOrientation.VERTICAL, // Orientation
true, // Include legend
true // Tooltips
);
// Chart Background কাস্টমাইজ করা
chart.setBackgroundPaint(Color.LIGHT_GRAY); // Chart background color
// Plot Area Background কাস্টমাইজ করা
chart.getPlot().setBackgroundPaint(Color.WHITE); // Plot area background color
// ChartPanel তৈরি করা
ChartPanel panel = new ChartPanel(chart);
panel.setPreferredSize(new java.awt.Dimension(800, 600));
// JFrame তৈরি করে চার্ট প্যানেল যোগ করা
javax.swing.JFrame frame = new javax.swing.JFrame();
frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
ব্যাখ্যা:
- chart.setBackgroundPaint(Color.LIGHT_GRAY): পুরো চার্টের ব্যাকগ্রাউন্ড লাইট গ্রে করা হয়েছে।
- chart.getPlot().setBackgroundPaint(Color.WHITE): প্লট এরিয়ার ব্যাকগ্রাউন্ড সাদা করা হয়েছে।
3. Plot Area Styling
Plot Area হল চার্টের সেই অংশ যেখানে ডাটা ভিজ্যুয়ালাইজ করা হয়। এর কাস্টমাইজেশন করলে চার্টের ভিজ্যুয়াল উপস্থাপন আরও আকর্ষণীয় হয়ে ওঠে।
Plot Area Styling কিভাবে করা যায়:
- Plot Border: প্লট এরিয়ার সীমানা (বর্ডার) কাস্টমাইজ করা।
- Grid Lines: গ্রিড লাইনগুলি কাস্টমাইজ করা যাতে ডাটা পয়েন্টগুলো স্পষ্টভাবে দেখা যায়।
উদাহরণ:
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import java.awt.*;
public class PlotAreaStylingExample {
public static void main(String[] args) {
// ডেটাসেট তৈরি করা
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(5, "Series1", "Category1");
dataset.addValue(10, "Series1", "Category2");
// Chart তৈরি করা
JFreeChart chart = ChartFactory.createBarChart(
"Styled Chart", // Title
"Category", // X-axis Label
"Value", // Y-axis Label
dataset, // Dataset
PlotOrientation.VERTICAL, // Orientation
true, // Include legend
true // Tooltips
);
// Plot Area কাস্টমাইজ করা
CategoryPlot plot = chart.getCategoryPlot();
plot.setBackgroundPaint(Color.YELLOW); // Plot area background color
plot.setDomainGridlinePaint(Color.RED); // Gridlines color
plot.setRangeGridlinePaint(Color.BLUE); // Gridlines color
// Plot Border কাস্টমাইজ করা
plot.setOutlinePaint(Color.BLACK); // Plot border color
plot.setOutlineStroke(new BasicStroke(2.0f)); // Plot border thickness
// ChartPanel তৈরি করা
ChartPanel panel = new ChartPanel(chart);
panel.setPreferredSize(new java.awt.Dimension(800, 600));
// JFrame তৈরি করে চার্ট প্যানেল যোগ করা
javax.swing.JFrame frame = new javax.swing.JFrame();
frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
ব্যাখ্যা:
- plot.setBackgroundPaint(Color.YELLOW): Plot Area এর ব্যাকগ্রাউন্ড হল হলুদ।
- plot.setDomainGridlinePaint(Color.RED): ডোমেইন (X-axis) গ্রিড লাইন রঙ সি-লাল করা হয়েছে।
- plot.setRangeGridlinePaint(Color.BLUE): রেঞ্জ (Y-axis) গ্রিড লাইন রঙ নীল করা হয়েছে।
- plot.setOutlinePaint(Color.BLACK): Plot এর সীমানা কালো করা হয়েছে।
Conclusion
Chart Title, Background, এবং Plot Area Styling JFreeChart দিয়ে কাস্টমাইজ করা সম্ভব এবং এই কাস্টমাইজেশন চার্টের উপস্থাপন আরও আকর্ষণীয় এবং কার্যকরী করে তোলে। আপনি প্রতিটি উপাদান যেমন টাইটেল, ব্যাকগ্রাউন্ড এবং প্লট এরিয়া কাস্টমাইজ করে চার্টের ডিজাইন এবং ভিজ্যুয়াল আউটপুট পরিবর্তন করতে পারেন। JFreeChart এর শক্তিশালী কাস্টমাইজেশন অপশনগুলির মাধ্যমে আপনি আরো আকর্ষণীয় এবং পাঠযোগ্য ডাটা ভিজ্যুয়ালাইজেশন তৈরি করতে পারবেন।
Read more