Hi,
I want to create a bar chart using timeseries dataset. But in the output, I am getting bars of different colors: some bars are white in color, while the others are red in color. What could be the reason for it?
The following is my code:
final TimeSeries series = new TimeSeries("Test Data");
String query = "SELECT * FROM report";
try
{
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
while (rs.next())
{
java.sql.Timestamp td= rs.getTimestamp("Date");
Double a= rs.getDouble("Average");
System.out.println(td + " timestamp " + a +" average");
int year = td.getYear();
int month = td.getMonth();
int day = td.getDay();
int hours = td.getHours();
int minutes = td.getMinutes();
int seconds = td.getSeconds();
Date dtest= new Date(year,month,day,hours,minutes,seconds);
FixedMillisecond ftest= new FixedMillisecond(dtest);
series.add(ftest,a);
}
}
catch (SQLException ex)
{
System.err.println(ex.getMessage());
}
final TimeSeriesCollection dataset = new TimeSeriesCollection(series);
IntervalXYDataset data1 = dataset;
JFreeChart chart = ChartFactory.createXYBarChart(
title,
"Date",
true,
"Price",
data1,
PlotOrientation.VERTICAL,
true,
true,
false
);
XYPlot plot = (XYPlot)chart.getPlot();
XYItemRenderer r = plot.getRenderer();
XYToolTipGenerator toolTipGenerator = new StandardXYToolTipGenerator(StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT, new SimpleDateFormat("d-MMM-yyyy"), NumberFormat.getNumberInstance());
r.setBaseToolTipGenerator(toolTipGenerator);
if(r instanceof XYLineAndShapeRenderer)
{
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer)r;
renderer.setBaseShapesVisible(true);
renderer.setBaseShapesFilled(true);
}
XYBarRenderer renderer2 = new XYBarRenderer();
renderer2.setShadowVisible(false);
plot.setRenderer(0, renderer2);
final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(800, 400));
setContentPane(chartPanel);
this is after the zoom-in