0

I want to automatically scale my chart Y-axis according to the values.

my exact problem is explained with images in this question but thats jfreechart library and i tried the solution but didn't work.

Auto-Scale Y-Axis in JfreeChart

this is my code

        NumberAxis rangeAxis1 = new NumberAxis();
        rangeAxis1.setStandardTickUnits(createTickUnits());
        rangeAxis1.setAutoTickUnitSelection(true);
        rangeAxis1.setAutoRange(true);
        rangeAxis1.setAutoRangeIncludesZero(false);
        rangeAxis1.setAxisLinePaintType(white);
        rangeAxis1.setAxisLineStroke(1);
        rangeAxis1.setTickMarkPaintType(white);
        rangeAxis1.setTickMarkStroke(1);
        rangeAxis1.setTickMarkOutsideLength(2);
        rangeAxis1.setLabelPaintType(white);
        rangeAxis1.setTickLabelPaintType(white);
        rangeAxis1.setTickLabelInsets(new RectangleInsets(10, 0, 10, 0));
        rangeAxis1.setLimitAble(/*true*/false);
        rangeAxis1.setLimitRange(20, 70);


        HighLowRenderer renderer1 = new HighLowRenderer();



        renderer1.setBaseOutlinePaintType(white);
        renderer1.setBaseOutlineStroke(1.0f);

        renderer1.setOpenTickPaintType(red);
        renderer1.setCloseTickPaintType(blue);

        XYPlot subplot1 = new XYPlot(dataset1, null, rangeAxis1, renderer1);


        subplot1.setDataset(1, dataset3);
        subplot1.setRenderer(1, renderer3);*/

        subplot1.setBackgroundPaintType(black);
        subplot1.setDomainGridlinePaintType(darkGreen);
        subplot1.setRangeGridlinePaintType(darkGreen);
        subplot1.setRangeAxisLocation(AxisLocation.TOP_OR_RIGHT);
        subplot1.setOutlineVisible(true);
        subplot1.setOutlinePaintType(white);
        subplot1.setOutlineStroke(2.0f);


        ValueAxis timeAxis = new DateAxis("Date");
        timeAxis.setAxisLinePaintType(white);
        timeAxis.setAxisLineStroke(1);

        timeAxis.setTickMarkPaintType(white);
        timeAxis.setTickMarkStroke(1);
        timeAxis.setTickMarkOutsideLength(2);

        timeAxis.setLabelPaintType(white);
        timeAxis.setTickLabelPaintType(white);

        CombinedDomainXYPlot plot = new CombinedDomainXYPlot(timeAxis);
        plot.setBackgroundPaintType(black);
        plot.add(subplot1, 2);

        AFreeChart chart=  ChartFactory.
        createHighLowChart("OHLCPreview","Time","Value",dataset1,false);
        // setting chart
        chart.setBackgroundPaintType(white);
Community
  • 1
  • 1
arjunkn
  • 301
  • 1
  • 7

1 Answers1

1

Finally i found the solution....

i am actually overriding the subplot1 at the end with the last line of code

AFreeChart chart=  ChartFactory.
createHighLowChart("OHLCPreview","Time","Value",dataset1,false);

replace it with

AFreeChart chart = new AFreeChart(
"OHLCPreview",
AFreeChart.DEFAULT_TITLE_FONT,
plot, false);
arjunkn
  • 301
  • 1
  • 7