Olá pessoal!
Estou fazendo um gráfico com JFreeChart, usando medições de temperatura de segundo em segundo, ou seja, a cada segundo eu tenho um valor de temperatura diferente.
Esse gráfico é muito extenso, pois eu receberei medições por aproximadamente 4 horas, totalizando 14.400 segundos.
O gráfico em anexo está correto, mas tem um inconveniente: Ao invés de mostrar 1.000, 2.000, 3.000 (…) segundos, eu queria mostrar 1h, 2h, 3h.
Como eu poderia fazer isso usando o NumberFormat?
Esqueci de dizer que tem uma classe que pode ajudar a fazer isso:
ValueAxis domainAxis = plot.getDomainAxis();
domainAxis.setStandardTickUnits(TimeAxis.createTimeTickUnits()); //este código muda o jeito de exibição do DomainAxis
E esta é a classe TimeAxis (copiei ela da classe org.jfree.chart.axis.NumberAxis). Quero fazer isso com as Horas, Minutos e Segundos:
[code]public class TimeAxis {
public static TickUnitSource createTimeTickUnits() {
TickUnits units = new TickUnits();
// SimpleDateFormat format = new SimpleDateFormat(“0”);
DecimalFormat dfs = new DecimalFormat(“0”);
DecimalFormat dfh = new DecimalFormat("#,##0");
units.add(new NumberTickUnit(1, dfs, 2));
units.add(new NumberTickUnit(2, dfs, 2));
units.add(new NumberTickUnit(5, dfs, 5));
units.add(new NumberTickUnit(10, dfs, 2));
units.add(new NumberTickUnit(20, dfs, 2));
units.add(new NumberTickUnit(60, dfm, 5));
units.add(new NumberTickUnit(120, dfs, 2));
units.add(new NumberTickUnit(200, dfs, 2));
units.add(new NumberTickUnit(500, dfs, 5));
units.add(new NumberTickUnit(1000, dfh, 2));
units.add(new NumberTickUnit(2000, dfh, 2));
units.add(new NumberTickUnit(5000, dfh, 5));
units.add(new NumberTickUnit(10000, dfh, 2));
units.add(new NumberTickUnit(20000, dfh, 2));
units.add(new NumberTickUnit(50000, dfh, 5));
units.add(new NumberTickUnit(100000, dfh, 2));
units.add(new NumberTickUnit(200000, dfh, 2));
units.add(new NumberTickUnit(500000, dfh, 5));
units.add(new NumberTickUnit(1000000, dfh, 2));
units.add(new NumberTickUnit(2000000, dfh, 2));
units.add(new NumberTickUnit(5000000, dfh, 5));
units.add(new NumberTickUnit(10000000, dfh, 2));
units.add(new NumberTickUnit(20000000, dfh, 2));
units.add(new NumberTickUnit(50000000, dfh, 5));
units.add(new NumberTickUnit(100000000, dfh, 2));
units.add(new NumberTickUnit(200000000, dfh, 2));
units.add(new NumberTickUnit(500000000, dfh, 5));
units.add(new NumberTickUnit(1000000000, dfh, 2));
units.add(new NumberTickUnit(2000000000, dfh, 2));
units.add(new NumberTickUnit(5000000000.0, dfh, 5));
units.add(new NumberTickUnit(10000000000.0, dfh, 2));
return units;
}
}[/code]