Alignment on domain axis in combined chart

Discussion about JFreeChart related to stockmarket charts.
Locked
godunkchen
Posts: 2
Joined: Wed Sep 24, 2008 5:26 pm

Alignment on domain axis in combined chart

Post by godunkchen » Wed Sep 24, 2008 5:37 pm

Hi,

Is there any way to align the left position for bar and candlestick chart in a combined plotter?

h t t p : //picasaweb.google.com.tw/dunk.chen/1stAlbum#5249626888818721906

godunkchen
Posts: 2
Joined: Wed Sep 24, 2008 5:26 pm

Post by godunkchen » Thu Sep 25, 2008 4:39 am

Here is my sample code
[code]
// generate chart
// 1. prepare dataset
TimeSeriesCollection dataSet = new TimeSeriesCollection(s1);
DefaultOHLCDataset dataSet2 = new DefaultOHLCDataset("CandleStick", itemArray);

// 2. prepare renderer
//XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
XYBarRenderer renderer = new XYBarRenderer();
renderer.setSeriesPaint(0, Color.BLUE);
renderer.setMargin(0.7);
//renderer.setSeriesLinesVisible(0, false);
//renderer.setSeriesShapesVisible(0, true);
CandlestickRenderer renderer2 = new CandlestickRenderer();
renderer2.setDrawVolume(false);
renderer2.setUpPaint(Color.RED);
renderer2.setDownPaint(Color.GREEN);

// 3. prepare Axis
NumberAxis rangeAxis = new NumberAxis("Volume in Stock");
NumberAxis rangeAxis2 = new NumberAxis("Value");
DateAxis domainAxis = new DateAxis("Time");
//DateAxis domainAxis2 = new DateAxis("Time");
//domainAxis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
SegmentedTimeline timeLine = SegmentedTimeline.newMondayThroughFridayTimeline();
domainAxis.setTimeline(timeLine);
//domainAxis2.setTimeline(timeLine);
rangeAxis.setAutoRangeIncludesZero(false);
rangeAxis2.setAutoRangeIncludesZero(false);

// 3. prepare plotter

XYPlot plotter = new XYPlot(dataSet2, domainAxis, rangeAxis2, renderer2);
plotter.setBackgroundPaint(Color.BLACK);
XYPlot plotter2 = new XYPlot(dataSet, domainAxis, rangeAxis, renderer);
plotter2.setBackgroundPaint(Color.BLACK);
//plotter2.setAxisOffset(new RectangleInsets(UnitType.RELATIVE, 0, -0.005, 0, 0));
//plotter2.set
/*
plotter.setDataset(1, dataSet2);
plotter.setRenderer(1, renderer2);
plotter.setRangeAxis(1, rangeAxis2);
plotter.mapDatasetToRangeAxis(1, 1);
*/
CombinedDomainXYPlot combPlotter = new CombinedDomainXYPlot(domainAxis);
combPlotter.add(plotter, 4);
combPlotter.add(plotter2, 1);

// 4. create chart
final JFreeChart chart = new JFreeChart(
"Demo Chart",
JFreeChart.DEFAULT_TITLE_FONT,
combPlotter,
true);
[/code]

Locked