Hello all,
if anyone got an example,pls let me know
Thanks
Divya
Anyone got an example for timeseries bar chart!!!!
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.text.SimpleDateFormat;
import java.util.StringTokenizer;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.CategoryItemRenderer;
import org.jfree.chart.renderer.StackedBarRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.CategoryDataset;
import org.jfree.data.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RectangleEdge;
import org.jfree.ui.RefineryUtilities;
public class Test_6 extends ApplicationFrame {
public Test_6(String title) {
super(title);
CategoryDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(500, 250));
setContentPane(chartPanel);
}
private CategoryDataset createDataset() {
String series1 = "First";
String category1 = "02/10/2005";
String category2 = "05/10/2005";
String category3 = "07/10/2005";
String category4 = "10/10/2005";
String category5 = "11/10/2005";
String category6 = "12/10/2005";
String category7 = "16/10/2005";
String category8 = "17/10/2005";
String category9 = "20/10/2005";
String category10 = "21/10/2005";
String category11 = "22/10/2005";
String category12 = "23/10/2005";
String category13 = "24/10/2005";
String category14 = "25/10/2005";
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
long time1 = convert("02:37:36");
long time2 = convert("11:22:45");
long time3 = convert("07:36:39");
long time4 = convert("03:00:41");
long time5 = convert("15:09:29");
long time6 = convert("09:33:33");
long time7 = convert("19:12:00");
long time8 = convert("18:36:48");
long time9 = convert("08:18:03");
long time10 = convert("02:49:41");
long time11 = convert("06:56:05");
long time12 = convert("17:06:30");
long time13 = convert("08:09:42");
long time14 = convert("14:01:53");
dataset.addValue(time1, series1, category1);
dataset.addValue(time2, series1, category2);
dataset.addValue(time3, series1, category3);
dataset.addValue(time4, series1, category4);
dataset.addValue(time5, series1, category5);
dataset.addValue(time6, series1, category6);
dataset.addValue(time7, series1, category7);
dataset.addValue(time8, series1, category8);
dataset.addValue(time9, series1, category9);
dataset.addValue(time10, series1, category10);
dataset.addValue(time11, series1, category11);
dataset.addValue(time12, series1, category12);
dataset.addValue(time13, series1, category13);
dataset.addValue(time14, series1, category14);
return dataset;
}
private JFreeChart createChart(CategoryDataset dataset) {
StackedBarRenderer renderer = new StackedBarRenderer();
renderer.setItemLabelsVisible(true);
JFreeChart chart = ChartFactory.createStackedBarChart("", "", "", dataset, PlotOrientation.VERTICAL, false, false, false);
chart.setBackgroundPaint(Color.white);
CategoryPlot plot = chart.getCategoryPlot();
DateAxis rangeAxis = new DateAxis();
rangeAxis.setDateFormatOverride(new SimpleDateFormat("hh:mm:ss"));
plot.setRangeAxis(rangeAxis);
rangeAxis.setLabel("HH:MM:SS");
rangeAxis.setAutoRange(true);
CategoryAxis axis = plot.getDomainAxis();
axis.setLowerMargin(0.02);
axis.setCategoryMargin(0.2;
axis.setUpperMargin(0.02);
axis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
axis.setCategoryLabelPositionOffset(1);
TextTitle eventTitle = new TextTitle("", new Font("Arial", Font.BOLD, 13));
eventTitle.setPosition(RectangleEdge.TOP);
chart.setTitle(eventTitle);
return chart;
}
public static void main(String[] args) {
Test_6 demo = new Test_6("Bar Chart Demo");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
public static long convert(String st) {
long result = 0;
StringTokenizer str = new StringTokenizer(st, ":");
while (str.hasMoreTokens()) {
int hrStr = Integer.parseInt(str.nextToken());
int minStr = Integer.parseInt(str.nextToken());
int ssStr = Integer.parseInt(str.nextToken());
int hrStr1 = hrStr + 06;
int minStr1 = minStr + 30;
if (minStr1 >= 60) {
hrStr1 = hrStr1 + 1;
minStr1 = minStr1 - 60;
}
result = calculateHour(hrStr1) + calculateMin(minStr1) + calculateSecond(ssStr);
}
return result;
}
public static long calculateHour(int st) {
long a = (st * (60 * 60 * 1000));
return a;
}
public static long calculateMin(int st) {
long a = (st * (60 * 1000));
return a;
}
public static long calculateSecond(int st) {
long a = (st * 1000);
return a;
}
}
just create a java class and run hopes this will solves your problem
import java.awt.Dimension;
import java.awt.Font;
import java.text.SimpleDateFormat;
import java.util.StringTokenizer;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.CategoryItemRenderer;
import org.jfree.chart.renderer.StackedBarRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.CategoryDataset;
import org.jfree.data.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RectangleEdge;
import org.jfree.ui.RefineryUtilities;
public class Test_6 extends ApplicationFrame {
public Test_6(String title) {
super(title);
CategoryDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(500, 250));
setContentPane(chartPanel);
}
private CategoryDataset createDataset() {
String series1 = "First";
String category1 = "02/10/2005";
String category2 = "05/10/2005";
String category3 = "07/10/2005";
String category4 = "10/10/2005";
String category5 = "11/10/2005";
String category6 = "12/10/2005";
String category7 = "16/10/2005";
String category8 = "17/10/2005";
String category9 = "20/10/2005";
String category10 = "21/10/2005";
String category11 = "22/10/2005";
String category12 = "23/10/2005";
String category13 = "24/10/2005";
String category14 = "25/10/2005";
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
long time1 = convert("02:37:36");
long time2 = convert("11:22:45");
long time3 = convert("07:36:39");
long time4 = convert("03:00:41");
long time5 = convert("15:09:29");
long time6 = convert("09:33:33");
long time7 = convert("19:12:00");
long time8 = convert("18:36:48");
long time9 = convert("08:18:03");
long time10 = convert("02:49:41");
long time11 = convert("06:56:05");
long time12 = convert("17:06:30");
long time13 = convert("08:09:42");
long time14 = convert("14:01:53");
dataset.addValue(time1, series1, category1);
dataset.addValue(time2, series1, category2);
dataset.addValue(time3, series1, category3);
dataset.addValue(time4, series1, category4);
dataset.addValue(time5, series1, category5);
dataset.addValue(time6, series1, category6);
dataset.addValue(time7, series1, category7);
dataset.addValue(time8, series1, category8);
dataset.addValue(time9, series1, category9);
dataset.addValue(time10, series1, category10);
dataset.addValue(time11, series1, category11);
dataset.addValue(time12, series1, category12);
dataset.addValue(time13, series1, category13);
dataset.addValue(time14, series1, category14);
return dataset;
}
private JFreeChart createChart(CategoryDataset dataset) {
StackedBarRenderer renderer = new StackedBarRenderer();
renderer.setItemLabelsVisible(true);
JFreeChart chart = ChartFactory.createStackedBarChart("", "", "", dataset, PlotOrientation.VERTICAL, false, false, false);
chart.setBackgroundPaint(Color.white);
CategoryPlot plot = chart.getCategoryPlot();
DateAxis rangeAxis = new DateAxis();
rangeAxis.setDateFormatOverride(new SimpleDateFormat("hh:mm:ss"));
plot.setRangeAxis(rangeAxis);
rangeAxis.setLabel("HH:MM:SS");
rangeAxis.setAutoRange(true);
CategoryAxis axis = plot.getDomainAxis();
axis.setLowerMargin(0.02);
axis.setCategoryMargin(0.2;
axis.setUpperMargin(0.02);
axis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
axis.setCategoryLabelPositionOffset(1);
TextTitle eventTitle = new TextTitle("", new Font("Arial", Font.BOLD, 13));
eventTitle.setPosition(RectangleEdge.TOP);
chart.setTitle(eventTitle);
return chart;
}
public static void main(String[] args) {
Test_6 demo = new Test_6("Bar Chart Demo");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
public static long convert(String st) {
long result = 0;
StringTokenizer str = new StringTokenizer(st, ":");
while (str.hasMoreTokens()) {
int hrStr = Integer.parseInt(str.nextToken());
int minStr = Integer.parseInt(str.nextToken());
int ssStr = Integer.parseInt(str.nextToken());
int hrStr1 = hrStr + 06;
int minStr1 = minStr + 30;
if (minStr1 >= 60) {
hrStr1 = hrStr1 + 1;
minStr1 = minStr1 - 60;
}
result = calculateHour(hrStr1) + calculateMin(minStr1) + calculateSecond(ssStr);
}
return result;
}
public static long calculateHour(int st) {
long a = (st * (60 * 60 * 1000));
return a;
}
public static long calculateMin(int st) {
long a = (st * (60 * 1000));
return a;
}
public static long calculateSecond(int st) {
long a = (st * 1000);
return a;
}
}
just create a java class and run hopes this will solves your problem