I have a timeSeries chart that has hourly data along the domain. The issue I am noticing is that with jre1.4, the axis labels do not auto adjust to fit the chart properly with hourly values. The chart axis displays every hour up to, not including 2 days of data. But in jre1.3.1, the labels are formatted correctly (nice spacing, very legible). Is there something else I need to change for 1.4 for these labels to adjust properly again?
Thanks,
Stacey
timeSeries chart, axis labels don't resize with jdk1.4 but d
Re: timeSeries chart, axis labels don't resize with jdk1.4 b
I've had a similar report from another developer using JDK 1.4. The problem is, it is working OK for me, so I haven't been able to get to the bottom of it yet. Do you have any sample code I can compile and run? Are you using Windows, MacOS, Linux, or something else? Are you using the latest beta or production JDK?
Regards,
DG.
Regards,
DG.
Re: timeSeries chart, axis labels don't resize with jdk1.4 b
I am running on Windows XP with JDK (-version) at:
java version "1.4.0_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0_01-b03)
Java HotSpot(TM) Client VM (build 1.4.0_01-b03, mixed mode)
(The previous jre 1.3.1 I was running was:
java version "1.3.1"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1-b24)
Java HotSpot(TM) Client VM (build 1.3.1-b24, mixed mode) )
I am also using a locally compiled version of jfreecharts from the cvs repository (as of 8/14/02).
I'll try to get some sample code for you but the actual project I'm working on is quite verbose to try and grab something from that.
TIA!
Stacey
java version "1.4.0_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0_01-b03)
Java HotSpot(TM) Client VM (build 1.4.0_01-b03, mixed mode)
(The previous jre 1.3.1 I was running was:
java version "1.3.1"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1-b24)
Java HotSpot(TM) Client VM (build 1.3.1-b24, mixed mode) )
I am also using a locally compiled version of jfreecharts from the cvs repository (as of 8/14/02).
I'll try to get some sample code for you but the actual project I'm working on is quite verbose to try and grab something from that.
TIA!
Stacey
Re: timeSeries chart, axis labels don't resize with jdk1.4 b
Here's some sample code of when in JDK 1.4.0 the tick labels are not fomatted the way they used to be in 1.3.1. It's a mock of the TimeSeriesDemo in com.jrefinery.chart.demo package and is pretty dirty but I think it gets the idea out there!
package com.cannontech.notused;
import java.awt.Insets;
import com.jrefinery.data.BasicTimeSeries;
import com.jrefinery.data.Quarter;
import com.jrefinery.data.TimeSeriesCollection;
import com.jrefinery.ui.ApplicationFrame;
import com.jrefinery.chart.JFreeChart;
import com.jrefinery.chart.ChartFactory;
import com.jrefinery.chart.ChartPanel;
import com.jrefinery.chart.XYPlot;
/**
* An example of a time series chart.
*/
public class TimeSeriesDemo_CTI extends ApplicationFrame {
/** The time series. */
protected BasicTimeSeries series;
/**
* A demonstration application showing a quarterly time series containing a null value.
*/
public TimeSeriesDemo_CTI(String title) {
super(title);
java.util.Date now = new java.util.Date();
this.series = new BasicTimeSeries("Minute Data", com.jrefinery.data.Second.class);
long start = 3600000;
long time = 0;
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + 60000)), 500.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 694.1);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 734.4);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 453.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 500.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 100);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 734.4);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 453.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 694.1);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 734.4);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 453.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 500.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 100);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 734.4);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 453.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 694.1);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 734.4);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 453.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 500.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 100);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 734.4);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 453.2);
// this.series = new BasicTimeSeries("Quarterly Data", Quarter.class);
// this.series.add(new Quarter(1, 2001), 500.2);
// this.series.add(new Quarter(2, 2001), 694.1);
// this.series.add(new Quarter(3, 2001), 734.4);
// this.series.add(new Quarter(4, 2001), 453.2);
// this.series.add(new Quarter(1, 2002), 500.2);
// this.series.add(new Quarter(2, 2002), null);
// this.series.add(new Quarter(3, 2002), 734.4);
// this.series.add(new Quarter(4, 2002), 453.2);
TimeSeriesCollection dataset = new TimeSeriesCollection(series);
// create a title with Unicode characters (currency symbols in this case) to see if it works
String chartTitle = "\u20A2\u20A2\u20A2\u20A3\u20A4\u20A5\u20A6\u20A7\u20A8\u20A9\u20AA";
JFreeChart chart = ChartFactory.createTimeSeriesChart(chartTitle, "Time", "Value",
dataset, true);
//chart.addTitle(new TextTitle(subtitle));
XYPlot plot = chart.getXYPlot();
plot.setInsets(new Insets(0, 0, 0, 20));
plot.addHorizontalLine(new Double(550));
ChartPanel chartPanel = new ChartPanel(chart);
this.setContentPane(chartPanel);
}
/**
* Starting point for the demonstration application.
*/
public static void main(String[] args) {
TimeSeriesDemo_CTI demo = new TimeSeriesDemo_CTI("Time Series Demo 1");
demo.pack();
demo.setVisible(true);
}
}
package com.cannontech.notused;
import java.awt.Insets;
import com.jrefinery.data.BasicTimeSeries;
import com.jrefinery.data.Quarter;
import com.jrefinery.data.TimeSeriesCollection;
import com.jrefinery.ui.ApplicationFrame;
import com.jrefinery.chart.JFreeChart;
import com.jrefinery.chart.ChartFactory;
import com.jrefinery.chart.ChartPanel;
import com.jrefinery.chart.XYPlot;
/**
* An example of a time series chart.
*/
public class TimeSeriesDemo_CTI extends ApplicationFrame {
/** The time series. */
protected BasicTimeSeries series;
/**
* A demonstration application showing a quarterly time series containing a null value.
*/
public TimeSeriesDemo_CTI(String title) {
super(title);
java.util.Date now = new java.util.Date();
this.series = new BasicTimeSeries("Minute Data", com.jrefinery.data.Second.class);
long start = 3600000;
long time = 0;
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + 60000)), 500.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 694.1);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 734.4);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 453.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 500.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 100);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 734.4);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 453.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 694.1);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 734.4);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 453.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 500.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 100);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 734.4);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 453.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 694.1);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 734.4);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 453.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 500.2);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 100);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 734.4);
this.series.add(new com.jrefinery.data.Second(new java.util.Date(now.getTime() + (time += start) )), 453.2);
// this.series = new BasicTimeSeries("Quarterly Data", Quarter.class);
// this.series.add(new Quarter(1, 2001), 500.2);
// this.series.add(new Quarter(2, 2001), 694.1);
// this.series.add(new Quarter(3, 2001), 734.4);
// this.series.add(new Quarter(4, 2001), 453.2);
// this.series.add(new Quarter(1, 2002), 500.2);
// this.series.add(new Quarter(2, 2002), null);
// this.series.add(new Quarter(3, 2002), 734.4);
// this.series.add(new Quarter(4, 2002), 453.2);
TimeSeriesCollection dataset = new TimeSeriesCollection(series);
// create a title with Unicode characters (currency symbols in this case) to see if it works
String chartTitle = "\u20A2\u20A2\u20A2\u20A3\u20A4\u20A5\u20A6\u20A7\u20A8\u20A9\u20AA";
JFreeChart chart = ChartFactory.createTimeSeriesChart(chartTitle, "Time", "Value",
dataset, true);
//chart.addTitle(new TextTitle(subtitle));
XYPlot plot = chart.getXYPlot();
plot.setInsets(new Insets(0, 0, 0, 20));
plot.addHorizontalLine(new Double(550));
ChartPanel chartPanel = new ChartPanel(chart);
this.setContentPane(chartPanel);
}
/**
* Starting point for the demonstration application.
*/
public static void main(String[] args) {
TimeSeriesDemo_CTI demo = new TimeSeriesDemo_CTI("Time Series Demo 1");
demo.pack();
demo.setVisible(true);
}
}
Re: timeSeries chart, axis labels don't resize with jdk1.4 b
26 timeSeries entries seems to be the magic number.
25 gives unformatted label types
36 gives nicely formatted labels.
25 gives unformatted label types
36 gives nicely formatted labels.
Re: timeSeries chart, axis labels don't resize with jdk1.4 b
Okay,
So after all of this, the answer is right in front of me. With the JDK 1.4.0, all fonts seem to be a pixel or so smaller. Therefore, more labels will fit in a given area, leaving the axis labels 'appearing' to not be formatted the same way. Sorry for wasting your time and home this will be helpfull to others!
Thanks!
Stacey
So after all of this, the answer is right in front of me. With the JDK 1.4.0, all fonts seem to be a pixel or so smaller. Therefore, more labels will fit in a given area, leaving the axis labels 'appearing' to not be formatted the same way. Sorry for wasting your time and home this will be helpfull to others!
Thanks!
Stacey
Re: timeSeries chart, axis labels don't resize with jdk1.4 b
If you are running on a windows system, and makign use of the windows look and feel, then the fonts ARE smaller. Win2000 look and feel(JDK1.4 etc) specifies this etc..
Hence, yes, a whole bunch of legacy java code that formats things is being changed ALL OVER the earth hehe.
Oh, question, random side note... the HotSpot virtual machine from sun... is that technology INCLUDED in the SDK/JDK/JRE etc, or is it some seperate corporate product. Only reason I ask, is i've seen it referred to as both a purchaseable product, and as included for free in 1.3.1 (but not 1.4 yet)
Thanks,
Roger S.
Hence, yes, a whole bunch of legacy java code that formats things is being changed ALL OVER the earth hehe.
Oh, question, random side note... the HotSpot virtual machine from sun... is that technology INCLUDED in the SDK/JDK/JRE etc, or is it some seperate corporate product. Only reason I ask, is i've seen it referred to as both a purchaseable product, and as included for free in 1.3.1 (but not 1.4 yet)
Thanks,
Roger S.