Olá turma,
estou lidando com o JFreeChart e tem uma coisa que não tá legal: ao gerar um gráfico de tempo (a intenção é simular o BurnDownChart definido na metodologia Scrum), eu gostaria que ele exibisse apenas as datas que eu inseri no dataset (não poderá conter dias de fim de semana). No entanto, ele coloca do primeiro até o último dia continuamente. Alguém sabe como definir isso?
public static TimeSeriesCollection createDataSet(){
TimeSeries s1 = new TimeSeries("Previsto", Day.class);
s1.add(new Day(1,4,2009), 40);
// s1.add(new Day(2,4,2009), 30);
// s1.add(new Day(3,4,2009),20);
// s1.add(new Day(6,4,2009), 10);
s1.add(new Day(7,4,2009), 0);
// mesmo se descomentar acima, mostra os dias 1,2,3,4,5,6 e 7 de abril
TimeSeries s2 = new TimeSeries("Alcancado", Day.class);
s2.add(new Day(1,4,2009), 40);
s2.add(new Day(2,4,2009), 40);
s2.add(new Day(3,4,2009), 30);
s2.add(new Day(6,4,2009), 20);
s2.add(new Day(7,4,2009), 20);
TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.addSeries(s1);
dataset.addSeries(s2);
return dataset;
}
//gera o gráfico
public static JFreeChart createChart(){
JFreeChart chart = ChartFactory.createTimeSeriesChart(
"Sprint Simbólico", // title
"Dias", // x-axis label
"Pontos", // y-axis label
createDataSet(), // data
true, // create legend?
true, // generate tooltips?
false // generate URLs?
);
XYPlot plot = (XYPlot)chart.getPlot();
XYItemRenderer r = plot.getRenderer();
if (r instanceof XYLineAndShapeRenderer) {
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
renderer.setBaseShapesVisible(true);
renderer.setBaseShapesFilled(false);
}
DateAxis axis = (DateAxis) plot.getDomainAxis();
axis.setDateFormatOverride(new SimpleDateFormat("dd-MMMM-yyyy"));
return chart;
}
public static void main(String[] args) {
ChartFrame frame = new ChartFrame("Fourthy: Time Series Charts", myFourthy.createChart());
frame.pack();
frame.setVisible(true);
}
A solução mais próxima que encontrei foi no exemplo TimeSeries2.java do demo (jfreechart-1.0.12-demo.jnlp), que mostra uma descontinuidade no gráfico (“A time series chart showing one series with a discontinuity (a null value in the series causes a break in the line).”)
Mas ainda não é isso que quero.
Se alguém puder ajudar, agradeço.