JFreeChart লাইব্রেরি একটি শক্তিশালী টুল যা Time Series ডেটা প্লট করতে ব্যবহৃত হয়। যখন আপনি টাইম সিরিজ ডেটা ব্যবহার করেন, যেমন সময়ের সাথে পরিবর্তনশীল ডেটা (শেয়ার প্রাইজ, তাপমাত্রা, ওয়েবসাইট ভিজিটস ইত্যাদি), তখন আপনাকে Date এবং Time Format সঠিকভাবে কনফিগার করতে হবে। এটি নিশ্চিত করবে যে আপনার চার্টের X-Axis সঠিকভাবে সময় প্রদর্শন করবে এবং ডেটা পয়েন্টের সঠিক বিন্যাস থাকবে।
এই গাইডে আমরা দেখব কিভাবে TimeSeries ডেটার জন্য Date এবং Time Format কনফিগার করা যায়।
1. TimeSeries এবং DateAxis এর ভূমিকা
TimeSeries হল একটি বিশেষ ধরনের ডেটা সিরিজ যা সময়ের সাথে ডেটার পরিবর্তন ট্র্যাক করতে ব্যবহৃত হয়। এটি ডেটা পয়েন্টগুলিকে Date টাইপ দিয়ে প্রতিনিধিত্ব করে।
DateAxis হলো JFreeChart এর একটি ক্লাস যা সময় (Date) প্রদর্শনের জন্য ব্যবহৃত হয়। এই ক্লাসটি X-Axis এ সময় এবং তারিখের সঠিক ফরম্যাটে ডেটা প্রদর্শন করে।
2. Date এবং Time Format কনফিগার করা
DateFormat কনফিগার করতে হলে, আপনি DateAxis ব্যবহার করবেন এবং সেটির মাধ্যমে কাস্টম সময় ফরম্যাট নির্ধারণ করবেন।
উদাহরণ: TimeSeriesData এর জন্য Date এবং Time Format কনফিগার করা
এখানে একটি উদাহরণ দেওয়া হলো, যেখানে একটি টাইম সিরিজ ডেটার জন্য Date এবং Time Format কনফিগার করা হবে।
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.axis.DateAxis;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import javax.swing.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TimeSeriesChartExample {
public static void main(String[] args) {
// TimeSeries data
XYSeries series = new XYSeries("Stock Prices");
series.add(new Date(1167609600000L), 100); // January 1, 2007
series.add(new Date(1170288000000L), 110); // February 1, 2007
series.add(new Date(1172707200000L), 120); // March 1, 2007
series.add(new Date(1175385600000L), 130); // April 1, 2007
series.add(new Date(1178064000000L), 140); // May 1, 2007
// Create dataset
XYSeriesCollection dataset = new XYSeriesCollection(series);
// Create chart
JFreeChart chart = ChartFactory.createXYLineChart(
"Stock Prices Over Time", // Chart Title
"Date", // X-Axis Label
"Price", // Y-Axis Label
dataset, // Dataset
PlotOrientation.VERTICAL, // Plot Orientation
true, // Include Legend
true, // Tooltips
false // URLs
);
// Customize the plot
XYPlot plot = chart.getXYPlot();
// Set Date format on the X-Axis (DateAxis)
DateAxis axis = new DateAxis("Date");
axis.setDateFormatOverride(new SimpleDateFormat("MMM dd, yyyy")); // Custom date format
plot.setDomainAxis(axis);
// Customize line style
XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
renderer.setSeriesLinesVisible(0, true);
plot.setRenderer(renderer);
// Create and display chart panel
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 600));
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(chartPanel);
frame.pack();
frame.setVisible(true);
}
}
3. কোডের ব্যাখ্যা
- XYSeries:
- এখানে XYSeries ব্যবহার করা হয়েছে যা Date টাইপের ডেটা পয়েন্ট গ্রহণ করে এবং Stock Prices ডেটার সাথে সম্পর্কিত তথ্য স্টোর করে।
- Date টাইপ ব্যবহার:
new Date(1167609600000L)এবং অন্যান্য ডেটা পয়েন্টগুলো Date ক্লাসের ইনস্ট্যান্স ব্যবহার করে উপস্থাপন করা হয়েছে।1167609600000Lহল Unix টাইমস্ট্যাম্প (milliseconds) যা January 1, 2007 তারিখকে নির্দেশ করে।
- DateAxis:
- DateAxis ব্যবহার করে X-Axis-এ সময় প্রদর্শনের ফরম্যাট কাস্টমাইজ করা হয়েছে।
axis.setDateFormatOverride(new SimpleDateFormat("MMM dd, yyyy"));এই কোড লাইনটি SimpleDateFormat ব্যবহার করে কাস্টম তারিখ ফরম্যাটMMM dd, yyyy(যেমন: Jan 01, 2007) সেট করেছে।
- ChartPanel:
- ChartPanel ব্যবহার করে আমরা JFreeChart অবজেক্টটি GUI তে প্রদর্শন করেছি।
4. Time Format কাস্টমাইজেশন
DateFormat ব্যবহার করে আপনি সময় এবং তারিখের ফরম্যাট কাস্টমাইজ করতে পারেন। এখানে কয়েকটি কাস্টম ফরম্যাট দেওয়া হলো:
yyyy-MM-dd HH:mm:ss:2022-05-10 15:30:00MMM dd, yyyy:May 10, 2022yyyy/MM/dd:2022/05/10HH:mm:ss:15:30:00(সময় শুধুমাত্র)
আপনি SimpleDateFormat এর মাধ্যমে যে কোন ধরনের Date এবং Time ফরম্যাট কাস্টমাইজ করতে পারবেন, যেমন:
DateAxis axis = new DateAxis("Date");
axis.setDateFormatOverride(new SimpleDateFormat("dd-MMM-yyyy"));
plot.setDomainAxis(axis);
এটি X-Axis-এ তারিখকে 10-May-2022 এই ফরম্যাটে প্রদর্শন করবে।
5. আউটপুট
এই কোডটি চালালে একটি Time Series Line Chart প্রদর্শিত হবে যেখানে X-Axis-এ তারিখ (January 1, 2007 থেকে May 1, 2007 পর্যন্ত) এবং Y-Axis-এ স্টক প্রাইজ দেখানো হবে। X-Axis এ Date এবং Time সঠিকভাবে প্রদর্শিত হবে, এবং আপনি আপনার কাস্টম ফরম্যাট অনুযায়ী সময় এবং তারিখ দেখতে পারবেন।
সারাংশ
JFreeChart ব্যবহার করে আপনি সহজেই Time Series Data এর জন্য Date এবং Time Format কনফিগার করতে পারেন। এটি DateAxis ক্লাসের মাধ্যমে কাস্টম তারিখ ফরম্যাট সেট করতে সহায়তা করে, যাতে আপনি সময় অনুযায়ী ডেটা প্রদর্শন করতে পারেন। এই গাইডে, আমরা দেখেছি কিভাবে Time Series ডেটা এবং Date Format কনফিগারেশন ব্যবহার করে একটি সুন্দর Line Chart তৈরি করা যায়।
Read more