如何使用afreechart库在OHLC图表中自动缩放Y轴

时间:2014-10-06 07:24:37

标签: android charts

我想根据值自动缩放图表Y轴。

我的确切问题是用这个问题中的图像解释的,但那是jfreechart库,我尝试了解决方案,但没有工作。

Auto-Scale Y-Axis in JfreeChart

这是我的代码

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

1 个答案:

答案 0 :(得分:1)

最后我找到了解决方案......

我实际上用最后一行代码

覆盖了最后的subplot1
AFreeChart chart=  ChartFactory.
createHighLowChart("OHLCPreview","Time","Value",dataset1,false);

替换为

AFreeChart chart = new AFreeChart(
"OHLCPreview",
AFreeChart.DEFAULT_TITLE_FONT,
plot, false);