bar chart rendering

A discussion forum for JFreeChart (a 2D chart library for the Java platform).
Locked
saneel
Posts: 2
Joined: Tue Jun 28, 2011 9:38 pm
antibot: No, of course not.

bar chart rendering

Post by saneel » Tue Jul 05, 2011 8:31 pm

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);

Image

this is after the zoom-in
Image

Locked