JFreeChart একটি জনপ্রিয় Java লাইব্রেরি যা বিভিন্ন ধরনের চার্ট তৈরি করতে ব্যবহৃত হয়। তবে 3D Data Visualization এর জন্য সরাসরি JFreeChart তে পূর্ণ 3D সাপোর্ট নেই, কিন্তু আমরা কিছু কৌশল এবং বাইরের লাইব্রেরি ব্যবহার করে 3D Charting সিমুলেট করতে পারি। এই গাইডে আমরা দেখব কিভাবে 3D Data Visualization তৈরি করা যায়, যেখানে আমরা JFreeChart এবং JavaFX বা Jzy3d এর সাহায্যে 3D ভিজ্যুয়ালাইজেশন করব।
1. 3D Data Visualization কী?
3D Data Visualization হল ডেটার মধ্যে সম্পর্ক এবং পরিবর্তন ত্রিমাত্রিক দৃষ্টিকোণ থেকে প্রদর্শন করা। এটি সাধারণত 3D Scatter Plots, 3D Surface Plots, এবং 3D Bar Charts ব্যবহার করে করা হয়, যেখানে X, Y, এবং Z অক্ষ দিয়ে ডেটা পয়েন্ট এবং তাদের সম্পর্ক দেখানো হয়।
2. JFreeChart দিয়ে 3D Chart তৈরি করা
যদিও JFreeChart 3D গ্রাফ সাপোর্ট করে না, তবে আমরা XY Plot এবং Bubble Chart এর মাধ্যমে 3D Data Visualization এর কিছু সিমুলেশন তৈরি করতে পারি। এর পাশাপাশি, JavaFX বা Jzy3d ব্যবহার করে আমরা পূর্ণ 3D চার্ট তৈরি করতে পারি।
3. 3D Scatter Plot Simulation with JFreeChart
এখানে আমরা XY Plot ব্যবহার করে একটি 3D Scatter Plot সিমুলেশন তৈরি করব, যেখানে X, Y এবং Z ভ্যালু পাব।
উদাহরণ: 3D Scatter Plot সিমুলেশন
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.*;
import java.awt.*;
public class ScatterPlot3DSimulation {
public static void main(String[] args) {
// XY Series তৈরি করা
XYSeries series = new XYSeries("3D Data");
// X, Y, Z মানে কিছু ডেটা পয়েন্ট যোগ করা (এখানে Z মানটা সিমুলেট করা হয়েছে)
series.add(1, 5); // X=1, Y=5
series.add(2, 8); // X=2, Y=8
series.add(3, 12); // X=3, Y=12
series.add(4, 18); // X=4, Y=18
series.add(5, 25); // X=5, Y=25
// Dataset তৈরি
XYSeriesCollection dataset = new XYSeriesCollection();
dataset.addSeries(series);
// Scatter Plot তৈরি করা
JFreeChart chart = ChartFactory.createScatterPlot(
"3D Scatter Plot Simulation", // Title
"X-Axis", // X-Axis Label
"Y-Axis", // Y-Axis Label
dataset, // Dataset
org.jfree.chart.plot.PlotOrientation.VERTICAL,
true, // Legend
true // Tooltips
);
// ChartPanel তৈরি
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(800, 600));
// JFrame তৈরি এবং ChartPanel যোগ করা
JFrame frame = new JFrame("3D Scatter Plot Simulation");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(chartPanel, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
}
কোডের ব্যাখ্যা:
- XYSeries: এখানে XYSeries ব্যবহার করে X এবং Y এর মান দিয়ে কিছু ডেটা পয়েন্ট যোগ করা হয়েছে। Z মানটি এখানে সিমুলেট করা হয়েছে, কারণ JFreeChart সরাসরি 3D সমর্থন করে না।
- Dataset এবং Chart: XYSeriesCollection এর মাধ্যমে ডেটা সেট তৈরি করা হয়েছে এবং
ChartFactory.createScatterPlot()মেথড ব্যবহার করে scatter plot তৈরি করা হয়েছে। - ChartPanel: এটি JFreeChart প্লটটিকে GUI তে প্রদর্শন করে।
4. Jzy3D ব্যবহার করে পূর্ণ 3D Visualization
Jzy3D হল একটি লাইব্রেরি যা Java-তে প্রকৃত 3D ডেটা ভিজ্যুয়ালাইজেশন তৈরি করতে সহায়ক। JFreeChart এর মাধ্যমে আমরা 3D প্লট সিমুলেট করতে পারলেও, Jzy3D লাইব্রেরি ব্যবহারে আপনি 3D স্যারের গ্রাফিক্স এবং সমতল গ্রাফের মাধ্যমে ডেটা সহজে ভিজ্যুয়ালাইজ করতে পারবেন।
উদাহরণ: 3D Scatter Plot with Jzy3D
import org.jzy3d.chart.Chart;
import org.jzy3d.chart.factories.ChartFactor;
import org.jzy3d.colors.Color;
import org.jzy3d.maths.Coord3d;
import org.jzy3d.plot3d.builder.Builder;
import org.jzy3d.plot3d.primitives.Point;
import org.jzy3d.plot3d.renderers.scene.Scene;
import javax.swing.*;
import java.awt.*;
public class Jzy3DScatterPlotExample {
public static void main(String[] args) {
// Create a chart
Chart chart = new Chart();
// Create points for 3D scatter plot
Coord3d[] points = new Coord3d[] {
new Coord3d(1, 5, 10),
new Coord3d(2, 8, 15),
new Coord3d(3, 12, 20),
new Coord3d(4, 18, 25),
new Coord3d(5, 25, 30),
new Coord3d(6, 40, 35)
};
// Add points to the scene
Scene scene = chart.getScene();
for (Coord3d point : points) {
Point p = new Point(point, new Color(1, 0, 0)); // Red Color
scene.add(p);
}
// Create and display frame
JFrame frame = new JFrame("3D Scatter Plot with Jzy3D");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(chart.getCanvas(), BorderLayout.CENTER);
frame.setSize(800, 600);
frame.setVisible(true);
}
}
কোডের ব্যাখ্যা:
- Jzy3D লাইব্রেরি ব্যবহার করে আমরা 3D Scatter Plot তৈরি করেছি।
- Coord3d ব্যবহৃত হয়েছে 3D কোঅর্ডিনেট পয়েন্টের জন্য।
- Chart তৈরি এবং Jzy3D এর মাধ্যমে 3D গ্রাফে ডেটা পয়েন্ট গুলি যোগ করা হয়েছে।
- JFrame দিয়ে 3D ভিজ্যুয়ালাইজেশন GUI তে প্রদর্শন করা হয়েছে।
5. JFreeChart এবং Jzy3D দিয়ে 3D Data Visualization সারাংশ
JFreeChart সরাসরি 3D গ্রাফ তৈরি করতে সক্ষম নয়, তবে আপনি XYPlot বা Bubble Chart এর মাধ্যমে 3D Data Simulation তৈরি করতে পারেন। যদি আপনি সম্পূর্ণ 3D ভিজ্যুয়ালাইজেশন চান, তবে Jzy3D লাইব্রেরি ব্যবহার করতে পারেন, যা প্রকৃত 3D গ্রাফিক্স এবং ভিজ্যুয়ালাইজেশন প্রদান করে।
- JFreeChart তে আপনি Scatter Plot সিমুলেট করতে পারেন, তবে এটি পূর্ণ 3D গ্রাফের জন্য উপযুক্ত নয়।
- Jzy3D লাইব্রেরি পূর্ণ 3D গ্রাফ তৈরি করতে সহায়ক, যেখানে আপনি সহজেই 3D Scatter Plot, Surface Plots এবং অন্যান্য ধরনের গ্রাফ তৈরি করতে পারেন।
Read more