How to pad some empty space?

A discussion forum for JFreeChart (a 2D chart library for the Java platform).
Locked
tomcatacec1
Posts: 1
Joined: Thu Sep 02, 2010 10:04 pm
antibot: No, of course not.

How to pad some empty space?

Post by tomcatacec1 » Thu Sep 02, 2010 10:33 pm

Code: Select all

private JFreeChart buildCallMessageChart(XYDataset dataset1, XYDataset dataset2)
	  {
	    JFreeChart localJFreeChart = ChartFactory.createTimeSeriesChart(null, "Date", "Duration of Calls (mins)", dataset1, false, false, false);

	    XYPlot localXYPlot = (XYPlot)localJFreeChart.getPlot();

	    // create right range axis
	    NumberAxis numberCallSmsNumberAxis = new NumberAxis("# of Calls/SMS");
	    numberCallSmsNumberAxis.setLabelAngle(Math.PI);
	    // add into plot
	    localXYPlot.setRangeAxis(1, numberCallSmsNumberAxis);
	    localXYPlot.setDataset(1, dataset2);
	    localXYPlot.mapDatasetToRangeAxis(1, 1);

	    final XYLineAndShapeRenderer leftXYLineAndShapeRenderer = (XYLineAndShapeRenderer)localXYPlot.getRenderer();
	    final XYLineAndShapeRenderer rightXYLineAndShapeRenderer = new XYLineAndShapeRenderer();
	    localXYPlot.setRenderer(1, rightXYLineAndShapeRenderer);

	    final LegendTitle leftLegendTitle = new LegendTitle(leftXYLineAndShapeRenderer);
	    final LegendTitle rightLegendTitle = new LegendTitle(rightXYLineAndShapeRenderer);
	    final BlockContainer localBlockContainer = new BlockContainer(new BorderArrangement());
	    localBlockContainer.add(leftLegendTitle, RectangleEdge.LEFT);
	    localBlockContainer.add(rightLegendTitle, RectangleEdge.RIGHT);
	    //localBlockContainer.add(new EmptyBlock(2000.0D, 0D));
	    final CompositeTitle localCompositeTitle = new CompositeTitle(localBlockContainer);
	    localCompositeTitle.setPosition(RectangleEdge.BOTTOM);
	    localJFreeChart.addSubtitle(localCompositeTitle);

	    ChartFactory.getChartTheme().apply(localJFreeChart);

	    // change left XYLineAndShapeRenderer
	    leftXYLineAndShapeRenderer.setBaseShapesVisible(true);

	    // change domain axis
	    final DateAxis dateAxis = (DateAxis)localXYPlot.getDomainAxis();
	    dateAxis.setTickUnit(new DateTickUnit(DateTickUnitType.MONTH, 1, new SimpleDateFormat("MMM-yyyy")));
	    dateAxis.setVerticalTickLabels(true);

	    // change plot
	    localXYPlot.setBackgroundPaint(Color.white);
	    localXYPlot.setRangeGridlineStroke(new BasicStroke(1.0F));
	    localXYPlot.setRangeGridlinePaint(Color.black);
	    localXYPlot.setDomainGridlinesVisible(false);

	    // change life range axis
	    final NumberAxis valueAxis = (NumberAxis)localXYPlot.getRangeAxis(0);
	    valueAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
	    valueAxis.setAutoRangeIncludesZero(true);

	    return localJFreeChart;
	  }
The above code will create the following chart:
Image

How do I pad some space on time line like the following chart?
Image

Locked