JFreeChart একটি শক্তিশালী লাইব্রেরি যা Java এ বিভিন্ন ধরনের ডেটা ভিজ্যুয়ালাইজেশন করতে ব্যবহৃত হয়। এই গাইডে, আমরা দেখব কিভাবে JFreeChart ব্যবহার করে Financial Data Visualization তৈরি করা যায়, যেমন স্টক মার্কেটের ডেটা, প্রফিট এবং লোকসান, এবং আরও অনেক কিছু। আমরা এখানে Line Chart, Bar Chart, এবং Candlestick Chart (যা সাধারণত স্টক মার্কেটের ডেটা প্রদর্শন করতে ব্যবহৃত হয়) কিভাবে তৈরি করা যায় তা দেখব।
1. Financial Data Visualization: Line Chart Example
Line Chart ব্যবহৃত হয় সময়ের সাথে ডেটার পরিবর্তন দেখানোর জন্য। এটি সাধারণত স্টক মার্কেট, প্রফিট এবং লোকসানের ট্র্যাকিং এর জন্য ব্যবহৃত হয়।
উদাহরণ: Monthly Stock Price Line Chart
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.time.Second;
import org.jfree.data.time.Second;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import javax.swing.*;
public class FinancialLineChartExample {
public static JPanel createChartPanel() {
// TimeSeries তৈরি করা, যেখানে Stock Price Data থাকবে
TimeSeries series = new TimeSeries("Stock Price");
series.add(new Second(0, 0, 1, 1, 2024), 100.0);
series.add(new Second(0, 1, 1, 1, 2024), 105.0);
series.add(new Second(0, 2, 1, 1, 2024), 98.0);
series.add(new Second(0, 3, 1, 1, 2024), 110.0);
// TimeSeriesCollection তৈরি করা
TimeSeriesCollection dataset = new TimeSeriesCollection(series);
// Line Chart তৈরি করা
JFreeChart chart = ChartFactory.createTimeSeriesChart(
"Stock Price Over Time", // Chart Title
"Time", // X-Axis Label
"Price (USD)", // Y-Axis Label
dataset, // Dataset
false, // No Legend
true, // Tooltips
false // URLs
);
// Chart Panel তৈরি করে এবং রিটার্ন করা
return new ChartPanel(chart);
}
public static void main(String[] args) {
// JFrame তৈরি করা
JFrame frame = new JFrame("Stock Price Line Chart");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(createChartPanel());
frame.pack();
frame.setVisible(true);
}
}
ব্যাখ্যা:
- এখানে TimeSeries ব্যবহার করা হয়েছে, যা স্টক প্রাইসের জন্য সময়ের সাথে পরিবর্তন ট্র্যাক করতে সাহায্য করে।
createTimeSeriesChart()মেথডের মাধ্যমে একটি Line Chart তৈরি করা হয়েছে যা স্টক প্রাইসের পরিবর্তন প্রদর্শন করবে।
2. Financial Data Visualization: Bar Chart Example
Bar Chart সাধারণত ডেটার পরিমাণ এবং ক্যাটেগরি তুলনা করার জন্য ব্যবহৃত হয়। এটি প্রফিট, লোকসান এবং অন্যান্য অর্থনৈতিক ডেটা প্রদর্শন করতে ব্যবহৃত হতে পারে।
উদাহরণ: Yearly Profit Bar 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 FinancialBarChartExample {
public static JPanel createChartPanel() {
// ডেটাসেট তৈরি করা
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(10000, "Profit", "2020");
dataset.addValue(12000, "Profit", "2021");
dataset.addValue(15000, "Profit", "2022");
dataset.addValue(13000, "Profit", "2023");
// Bar Chart তৈরি করা
JFreeChart chart = ChartFactory.createBarChart(
"Yearly Profit", // Chart Title
"Year", // X-Axis Label
"Profit (USD)", // Y-Axis Label
dataset, // Dataset
org.jfree.chart.plot.PlotOrientation.VERTICAL, // Orientation
true, // Legend
true, // Tooltips
false // URLs
);
// Chart Panel তৈরি করে এবং রিটার্ন করা
return new ChartPanel(chart);
}
public static void main(String[] args) {
// JFrame তৈরি করা
JFrame frame = new JFrame("Yearly Profit Bar Chart");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(createChartPanel());
frame.pack();
frame.setVisible(true);
}
}
ব্যাখ্যা:
- DefaultCategoryDataset ব্যবহার করে বার চার্টের ডেটা সংরক্ষণ করা হয়েছে।
createBarChart()মেথডের মাধ্যমে Bar Chart তৈরি করা হয়েছে যা প্রতিটি বছরের প্রফিট দেখায়।
3. Financial Data Visualization: Candlestick Chart Example
Candlestick Chart স্টক মার্কেটের জন্য একটি গুরুত্বপূর্ণ চার্ট যেটি ওপেন, ক্লোজ, হাই এবং লো প্রাইস প্রদর্শন করতে ব্যবহৃত হয়। এটি স্টক প্রাইসের ভোলাটিলিটি এবং ট্রেন্ড দেখানোর জন্য খুবই কার্যকর।
উদাহরণ: Candlestick Chart
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 org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYPlot;
import org.jfree.chart.plot.Plot;
import javax.swing.*;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
public class CandlestickChartExample {
public static JPanel createChartPanel() {
// Candlestick Data (Open, High, Low, Close)
XYSeries series = new XYSeries("Candlestick");
series.add(1, 100, 120, 80, 110); // Example: Day 1 (Open, High, Low, Close)
series.add(2, 110, 130, 90, 120); // Example: Day 2
series.add(3, 120, 140, 100, 130); // Example: Day 3
XYSeriesCollection dataset = new XYSeriesCollection(series);
// Creating the chart
JFreeChart chart = ChartFactory.createXYLineChart(
"Stock Price Candlestick Chart", // Chart Title
"Time", // X-Axis Label
"Price (USD)", // Y-Axis Label
dataset, // Dataset
PlotOrientation.VERTICAL, // Plot Orientation
true, // Show Legend
true, // Tooltips
false // URLs
);
// Customize the plot to represent candlestick
XYPlot plot = chart.getXYPlot();
XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
renderer.setSeriesShapesVisible(0, true);
plot.setDomainPannable(true);
plot.setRangePannable(true);
plot.setDomainCrosshairVisible(true);
plot.setRangeCrosshairVisible(true);
plot.setDomainPannable(true);
// Adding the renderer to the plot
plot.setRenderer(renderer);
// Chart Panel
return new ChartPanel(chart);
}
public static void main(String[] args) {
// JFrame for displaying the chart
JFrame frame = new JFrame("Candlestick Chart");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(createChartPanel());
frame.pack();
frame.setVisible(true);
}
}
ব্যাখ্যা:
- XYSeries দিয়ে ক্যান্ডেলস্টিক ডেটা তৈরি করা হয়েছে, যেখানে প্রতিটি দিনের জন্য ওপেন, হাই, লো এবং ক্লোজ প্রাইস প্রদান করা হয়েছে।
ChartFactory.createXYLineChart()মেথডের মাধ্যমে ক্যান্ডেলস্টিক চার্ট তৈরি করা হয়েছে।
সারাংশ
JFreeChart ব্যবহার করে Financial Data Visualization এর জন্য Line Chart, Bar Chart, এবং Candlestick Chart তৈরি করা খুবই সহজ। আপনি TimeSeries, CategoryDataset, এবং XYSeries ব্যবহার করে ডেটা প্রক্রিয়াকরণ এবং ভিজ্যুয়ালাইজেশন করতে পারেন। JFreeChart এর মাধ্যমে স্টক মার্কেট, প্রফিট, লোকসান এবং আরও অনেক ধরনের আর্থিক ডেটা সুন্দরভাবে উপস্থাপন করা সম্ভব।
Read more