Bars to the right to much...??

A discussion forum for JFreeChart (a 2D chart library for the Java platform).
Locked
Grant

Bars to the right to much...??

Post by Grant » Fri Sep 06, 2002 7:06 am

Hi,

Can anyone please explain why my Data based graph seems to start a little more the right than I would like.... in other words, how can I make the vertical bars start closer to the left hand side ??

Thanks...


import com.jrefinery.chart.*;
import com.jrefinery.chart.tooltips.TimeSeriesToolTipGenerator;
import com.jrefinery.data.*;
import com.jrefinery.date.SerialDate;
import com.jrefinery.ui.ApplicationFrame;
import com.jrefinery.ui.RefineryUtilities;

public class CombinedXYPlotDemo extends ApplicationFrame
{
public CombinedXYPlotDemo(String title)
{
super(title);
JFreeChart chart = createCombinedChart();
ChartPanel panel = new ChartPanel(chart, true, true, true, false, true);
panel.setPreferredSize(new java.awt.Dimension(500, 270));
this.setContentPane(panel);
}

private JFreeChart createCombinedChart()
{
// create a parent plot...
CombinedXYPlot plot = new CombinedXYPlot(new HorizontalDateAxis("Months"), CombinedXYPlot.VERTICAL);

// create subplot 1...
XYDataset data1 = this.createDataset1();
XYItemRenderer renderer1 = new VerticalXYBarRenderer(0.20);
XYPlot subplot1 = new XYPlot(data1, null, new VerticalNumberAxis("Rating Achieved"), renderer1);

// create subplot 2...
XYDataset data2 = this.createDataset2();
XYItemRenderer renderer2 = new VerticalXYBarRenderer(0.20);
XYPlot subplot2 = new XYPlot(data2, null, new VerticalNumberAxis("Time Spent"),renderer2);

// add the subplots...
plot.add(subplot1, 1);
plot.add(subplot2, 1);

// return a new chart containing the overlaid plot...
return new JFreeChart("Progress Report 6/9/2002",JFreeChart.DEFAULT_TITLE_FONT, plot, true);

}


private XYDataset createDataset1()
{

// create dataset 1...
BasicTimeSeries series1 = new BasicTimeSeries("Rating Achieved", Week.class);

series1.add(new Week(1, 2002), 3);
series1.add(new Week(2, 2002), 3);
series1.add(new Week(3, 2002), 4);
series1.add(new Week(4, 2002), 4);
series1.add(new Week(5, 2002), 5);
series1.add(new Week(6, 2002), 5);
series1.add(new Week(7, 2002), 6);
series1.add(new Week(8, 2002), 7);
series1.add(new Week(9, 2002), 7);
series1.add(new Week(10, 2002), 7);
series1.add(new Week(11, 2002), 8);
series1.add(new Week(12, 2002), 8);

return new TimeSeriesCollection(series1);
}

private XYDataset createDataset2()
{

// create dataset 2...
BasicTimeSeries series2 = new BasicTimeSeries("Time Spent", Week.class);

series2.add(new Week(1, 2002), 10);
series2.add(new Week(2, 2002), 9);
series2.add(new Week(3, 2002), 11);
series2.add(new Week(4, 2002), 9);
series2.add(new Week(5, 2002), 10);
series2.add(new Week(6, 2002), 10);
series2.add(new Week(7, 2002), 9);
series2.add(new Week(8, 2002), 10);
series2.add(new Week(9, 2002), 11);
series2.add(new Week(10, 2002), 10);
series2.add(new Week(11, 2002), 8);
series2.add(new Week(12, 2002), 10);

return new TimeSeriesCollection(series2);
}

public static void main(String[] args)
{
CombinedXYPlotDemo demo = new CombinedXYPlotDemo("Combined XY Plot Demo");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}

Kadi

Re: Bars to the right to much...??

Post by Kadi » Fri Sep 06, 2002 9:48 am

First of all download 0.9.3, then:

HorizontalDateAxis timeAxis = new HorizontalDateAxis(timeAxisLabel);
timeAxis.setUpperMargin(0.03);
timeAxis.setLowerMargin(0.01);

(Lower-left Upper-right sides)

Locked