Hi Everyone,
Here is something very simple, I am trying to do. I am trying to create a stacked area chart using ChartFactory.createStackedAreaChart() with CategoryDataset. But to my surprise, tooltip behaves very different compared to using ChartFactory.createAreaChart() with CategoryDataset. When I say it behaves different, I mean that for formar case, I have to move the mouse to the (X,Y) intersection to display the tooltip while later displays the tooltip no matter where the mouse is on the chart.
I am using Jfreechart version 1.0.3. I am also attaching the sample example I am working with.
Can anyone please help me here. This is really urgent. I have also bought JFreechart developer guide so any reference to that can also be helpful.
Thanks,
Deepika
/* ------------------
* AreaChartDemo.java
* ------------------
* (C) Copyright 2002-2005, by Object Refinery Limited.
*
*/
package demo;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.JPanel;
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.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RectangleEdge;
import org.jfree.ui.RectangleInsets;
import org.jfree.ui.RefineryUtilities;
import org.jfree.ui.VerticalAlignment;
import org.jfree.util.UnitType;
/**
* A simple demonstration application showing how to create an area chart
* using data from a {@link CategoryDataset}.
*/
public class DeepikaStackedAreaChartDemo1 extends ApplicationFrame {
/**
* Creates a new demo application.
*
* @param title the frame title.
*/
public DeepikaStackedAreaChartDemo1(String title) {
super(title);
CategoryDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(500, 270));
chartPanel.setEnforceFileExtensions(false);
setContentPane(chartPanel);
}
/**
* Creates a sample dataset.
*
* @return A sample dataset.
*/
private static CategoryDataset createDataset() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.0, "Series 1", "Type 1");
dataset.addValue(4.0, "Series 1", "Type 2");
dataset.addValue(3.0, "Series 1", "Type 3");
dataset.addValue(5.0, "Series 1", "Type 4");
dataset.addValue(5.0, "Series 1", "Type 5");
dataset.addValue(7.0, "Series 1", "Type 6");
dataset.addValue(7.0, "Series 1", "Type 7");
dataset.addValue(8.0, "Series 1", "Type 8");
dataset.addValue(5.0, "Series 2", "Type 1");
dataset.addValue(7.0, "Series 2", "Type 2");
dataset.addValue(6.0, "Series 2", "Type 3");
dataset.addValue(8.0, "Series 2", "Type 4");
dataset.addValue(4.0, "Series 2", "Type 5");
dataset.addValue(4.0, "Series 2", "Type 6");
dataset.addValue(2.0, "Series 2", "Type 7");
dataset.addValue(1.0, "Series 2", "Type 8");
dataset.addValue(4.0, "Series 3", "Type 1");
dataset.addValue(3.0, "Series 3", "Type 2");
dataset.addValue(2.0, "Series 3", "Type 3");
dataset.addValue(3.0, "Series 3", "Type 4");
dataset.addValue(6.0, "Series 3", "Type 5");
dataset.addValue(3.0, "Series 3", "Type 6");
dataset.addValue(4.0, "Series 3", "Type 7");
dataset.addValue(3.0, "Series 3", "Type 8");
return dataset;
}
/**
* Creates a chart.
*
* @param dataset the dataset.
*
* @return The chart.
*/
private static JFreeChart createChart(CategoryDataset dataset) {
JFreeChart chart = ChartFactory.createStackedAreaChart(
"Area Chart", // chart title
"Category", // domain axis label
"Value", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips
false // urls
);
// NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
chart.setBackgroundPaint(Color.white);
TextTitle subtitle = new TextTitle(
"An area chart demonstration. We use this subtitle as an "
+ "example of what happens when you get a really long title or "
+ "subtitle."
);
subtitle.setFont(new Font("SansSerif", Font.PLAIN, 12));
subtitle.setPosition(RectangleEdge.TOP);
subtitle.setPadding(
new RectangleInsets(UnitType.RELATIVE, 0.05, 0.05, 0.05, 0.05)
);
subtitle.setVerticalAlignment(VerticalAlignment.BOTTOM);
chart.addSubtitle(subtitle);
CategoryPlot plot = chart.getCategoryPlot();
plot.setForegroundAlpha(0.5f);
plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
plot.setBackgroundPaint(Color.lightGray);
plot.setDomainGridlinesVisible(true);
plot.setDomainGridlinePaint(Color.white);
plot.setRangeGridlinesVisible(true);
plot.setRangeGridlinePaint(Color.white);
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
domainAxis.setLowerMargin(0.0);
domainAxis.setUpperMargin(0.0);
domainAxis.addCategoryLabelToolTip("Type 1", "The first type.");
domainAxis.addCategoryLabelToolTip("Type 2", "The second type.");
domainAxis.addCategoryLabelToolTip("Type 3", "The third type.");
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setLabelAngle(0 * Math.PI / 2.0);
// OPTIONAL CUSTOMISATION COMPLETED.
return chart;
}
/**
* Creates a panel for the demo (used by SuperDemo.java).
*
* @return A panel.
*/
public static JPanel createDemoPanel() {
JFreeChart chart = createChart(createDataset());
return new ChartPanel(chart);
}
/**
* Starting point for the demonstration application when it is run as
* a stand-alone application.
*
* @param args ignored.
*/
public static void main(String[] args) {
DeepikaStackedAreaChartDemo1 demo = new DeepikaStackedAreaChartDemo1("Area Chart Demo");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}
ChartFactory.createStackedAreaChart() with CategoryDataset ?
ChartFactory.createStackedAreaChart() with CategoryDataset ?
Thanks & Regards,
Deepika
Deepika
"Tooltip" behaviour in StackAreaChart...is there a
Hi Everyone,
I am trying to create a stacked area chart using ChartFactory.createStackedAreaChart() with CategoryDataset. But to my surprise, tooltip behaves very different compared to using ChartFactory.createAreaChart() with CategoryDataset. When I say it behaves different, I mean that for formar case, I have to move the mouse to the (X,Y) intersection to display the tooltip while later displays the tooltip no matter where the mouse is on the chart. Is it possible that there is some kind of bug in ChartFactory.createAreaChart()?
I am using Jfreechart version 1.0.3. I am also attaching the sample example I am working with.
Can anyone please help me here. This is really urgent. I have to use CategoryDataset because the values on the X-axis are strings( NOT numbers). Any suggestion on as to how could I get tooltips working in the same way as it does for ChartFactory.createAreaChart().
Thanks,
Deepika
/* ------------------
* AreaChartDemo.java
* ------------------
* (C) Copyright 2002-2005, by Object Refinery Limited.
*
*/
package demo;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.JPanel;
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.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RectangleEdge;
import org.jfree.ui.RectangleInsets;
import org.jfree.ui.RefineryUtilities;
import org.jfree.ui.VerticalAlignment;
import org.jfree.util.UnitType;
/**
* A simple demonstration application showing how to create an area chart
* using data from a {@link CategoryDataset}.
*/
public class DeepikaStackedAreaChartDemo1 extends ApplicationFrame {
/**
* Creates a new demo application.
*
* @param title the frame title.
*/
public DeepikaStackedAreaChartDemo1(String title) {
super(title);
CategoryDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(500, 270));
chartPanel.setEnforceFileExtensions(false);
setContentPane(chartPanel);
}
/**
* Creates a sample dataset.
*
* @return A sample dataset.
*/
private static CategoryDataset createDataset() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.0, "Series 1", "Type 1");
dataset.addValue(4.0, "Series 1", "Type 2");
dataset.addValue(3.0, "Series 1", "Type 3");
dataset.addValue(5.0, "Series 1", "Type 4");
dataset.addValue(5.0, "Series 1", "Type 5");
dataset.addValue(7.0, "Series 1", "Type 6");
dataset.addValue(7.0, "Series 1", "Type 7");
dataset.addValue(8.0, "Series 1", "Type 8");
dataset.addValue(5.0, "Series 2", "Type 1");
dataset.addValue(7.0, "Series 2", "Type 2");
dataset.addValue(6.0, "Series 2", "Type 3");
dataset.addValue(8.0, "Series 2", "Type 4");
dataset.addValue(4.0, "Series 2", "Type 5");
dataset.addValue(4.0, "Series 2", "Type 6");
dataset.addValue(2.0, "Series 2", "Type 7");
dataset.addValue(1.0, "Series 2", "Type 8");
dataset.addValue(4.0, "Series 3", "Type 1");
dataset.addValue(3.0, "Series 3", "Type 2");
dataset.addValue(2.0, "Series 3", "Type 3");
dataset.addValue(3.0, "Series 3", "Type 4");
dataset.addValue(6.0, "Series 3", "Type 5");
dataset.addValue(3.0, "Series 3", "Type 6");
dataset.addValue(4.0, "Series 3", "Type 7");
dataset.addValue(3.0, "Series 3", "Type 8");
return dataset;
}
/**
* Creates a chart.
*
* @param dataset the dataset.
*
* @return The chart.
*/
private static JFreeChart createChart(CategoryDataset dataset) {
JFreeChart chart = ChartFactory.createStackedAreaChart(
"Area Chart", // chart title
"Category", // domain axis label
"Value", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips
false // urls
);
// NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
chart.setBackgroundPaint(Color.white);
TextTitle subtitle = new TextTitle(
"An area chart demonstration. We use this subtitle as an "
+ "example of what happens when you get a really long title or "
+ "subtitle."
);
subtitle.setFont(new Font("SansSerif", Font.PLAIN, 12));
subtitle.setPosition(RectangleEdge.TOP);
subtitle.setPadding(
new RectangleInsets(UnitType.RELATIVE, 0.05, 0.05, 0.05, 0.05)
);
subtitle.setVerticalAlignment(VerticalAlignment.BOTTOM);
chart.addSubtitle(subtitle);
CategoryPlot plot = chart.getCategoryPlot();
plot.setForegroundAlpha(0.5f);
plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
plot.setBackgroundPaint(Color.lightGray);
plot.setDomainGridlinesVisible(true);
plot.setDomainGridlinePaint(Color.white);
plot.setRangeGridlinesVisible(true);
plot.setRangeGridlinePaint(Color.white);
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
domainAxis.setLowerMargin(0.0);
domainAxis.setUpperMargin(0.0);
domainAxis.addCategoryLabelToolTip("Type 1", "The first type.");
domainAxis.addCategoryLabelToolTip("Type 2", "The second type.");
domainAxis.addCategoryLabelToolTip("Type 3", "The third type.");
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setLabelAngle(0 * Math.PI / 2.0);
// OPTIONAL CUSTOMISATION COMPLETED.
return chart;
}
/**
* Creates a panel for the demo (used by SuperDemo.java).
*
* @return A panel.
*/
public static JPanel createDemoPanel() {
JFreeChart chart = createChart(createDataset());
return new ChartPanel(chart);
}
/**
* Starting point for the demonstration application when it is run as
* a stand-alone application.
*
* @param args ignored.
*/
public static void main(String[] args) {
DeepikaStackedAreaChartDemo1 demo = new DeepikaStackedAreaChartDemo1("Area Chart Demo");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}
Powered by phpBB © 2001, 2005 phpBB Group
I am trying to create a stacked area chart using ChartFactory.createStackedAreaChart() with CategoryDataset. But to my surprise, tooltip behaves very different compared to using ChartFactory.createAreaChart() with CategoryDataset. When I say it behaves different, I mean that for formar case, I have to move the mouse to the (X,Y) intersection to display the tooltip while later displays the tooltip no matter where the mouse is on the chart. Is it possible that there is some kind of bug in ChartFactory.createAreaChart()?
I am using Jfreechart version 1.0.3. I am also attaching the sample example I am working with.
Can anyone please help me here. This is really urgent. I have to use CategoryDataset because the values on the X-axis are strings( NOT numbers). Any suggestion on as to how could I get tooltips working in the same way as it does for ChartFactory.createAreaChart().
Thanks,
Deepika
/* ------------------
* AreaChartDemo.java
* ------------------
* (C) Copyright 2002-2005, by Object Refinery Limited.
*
*/
package demo;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.JPanel;
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.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RectangleEdge;
import org.jfree.ui.RectangleInsets;
import org.jfree.ui.RefineryUtilities;
import org.jfree.ui.VerticalAlignment;
import org.jfree.util.UnitType;
/**
* A simple demonstration application showing how to create an area chart
* using data from a {@link CategoryDataset}.
*/
public class DeepikaStackedAreaChartDemo1 extends ApplicationFrame {
/**
* Creates a new demo application.
*
* @param title the frame title.
*/
public DeepikaStackedAreaChartDemo1(String title) {
super(title);
CategoryDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(500, 270));
chartPanel.setEnforceFileExtensions(false);
setContentPane(chartPanel);
}
/**
* Creates a sample dataset.
*
* @return A sample dataset.
*/
private static CategoryDataset createDataset() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.0, "Series 1", "Type 1");
dataset.addValue(4.0, "Series 1", "Type 2");
dataset.addValue(3.0, "Series 1", "Type 3");
dataset.addValue(5.0, "Series 1", "Type 4");
dataset.addValue(5.0, "Series 1", "Type 5");
dataset.addValue(7.0, "Series 1", "Type 6");
dataset.addValue(7.0, "Series 1", "Type 7");
dataset.addValue(8.0, "Series 1", "Type 8");
dataset.addValue(5.0, "Series 2", "Type 1");
dataset.addValue(7.0, "Series 2", "Type 2");
dataset.addValue(6.0, "Series 2", "Type 3");
dataset.addValue(8.0, "Series 2", "Type 4");
dataset.addValue(4.0, "Series 2", "Type 5");
dataset.addValue(4.0, "Series 2", "Type 6");
dataset.addValue(2.0, "Series 2", "Type 7");
dataset.addValue(1.0, "Series 2", "Type 8");
dataset.addValue(4.0, "Series 3", "Type 1");
dataset.addValue(3.0, "Series 3", "Type 2");
dataset.addValue(2.0, "Series 3", "Type 3");
dataset.addValue(3.0, "Series 3", "Type 4");
dataset.addValue(6.0, "Series 3", "Type 5");
dataset.addValue(3.0, "Series 3", "Type 6");
dataset.addValue(4.0, "Series 3", "Type 7");
dataset.addValue(3.0, "Series 3", "Type 8");
return dataset;
}
/**
* Creates a chart.
*
* @param dataset the dataset.
*
* @return The chart.
*/
private static JFreeChart createChart(CategoryDataset dataset) {
JFreeChart chart = ChartFactory.createStackedAreaChart(
"Area Chart", // chart title
"Category", // domain axis label
"Value", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips
false // urls
);
// NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
chart.setBackgroundPaint(Color.white);
TextTitle subtitle = new TextTitle(
"An area chart demonstration. We use this subtitle as an "
+ "example of what happens when you get a really long title or "
+ "subtitle."
);
subtitle.setFont(new Font("SansSerif", Font.PLAIN, 12));
subtitle.setPosition(RectangleEdge.TOP);
subtitle.setPadding(
new RectangleInsets(UnitType.RELATIVE, 0.05, 0.05, 0.05, 0.05)
);
subtitle.setVerticalAlignment(VerticalAlignment.BOTTOM);
chart.addSubtitle(subtitle);
CategoryPlot plot = chart.getCategoryPlot();
plot.setForegroundAlpha(0.5f);
plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
plot.setBackgroundPaint(Color.lightGray);
plot.setDomainGridlinesVisible(true);
plot.setDomainGridlinePaint(Color.white);
plot.setRangeGridlinesVisible(true);
plot.setRangeGridlinePaint(Color.white);
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
domainAxis.setLowerMargin(0.0);
domainAxis.setUpperMargin(0.0);
domainAxis.addCategoryLabelToolTip("Type 1", "The first type.");
domainAxis.addCategoryLabelToolTip("Type 2", "The second type.");
domainAxis.addCategoryLabelToolTip("Type 3", "The third type.");
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setLabelAngle(0 * Math.PI / 2.0);
// OPTIONAL CUSTOMISATION COMPLETED.
return chart;
}
/**
* Creates a panel for the demo (used by SuperDemo.java).
*
* @return A panel.
*/
public static JPanel createDemoPanel() {
JFreeChart chart = createChart(createDataset());
return new ChartPanel(chart);
}
/**
* Starting point for the demonstration application when it is run as
* a stand-alone application.
*
* @param args ignored.
*/
public static void main(String[] args) {
DeepikaStackedAreaChartDemo1 demo = new DeepikaStackedAreaChartDemo1("Area Chart Demo");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}
Powered by phpBB © 2001, 2005 phpBB Group
Thanks & Regards,
Deepika
Deepika
-
- JFreeChart Project Leader
- Posts: 11734
- Joined: Fri Mar 14, 2003 10:29 am
- antibot: No, of course not.
- Contact:
David Gilbert
JFreeChart Project Leader
Read my blog
Support JFree via the Github sponsorship program
JFreeChart Project Leader

