mpandroidchart X轴在缩小时标记密度

时间:2017-02-14 11:32:02

标签: android charts mpandroidchart

我在下面的照片上有一个折线图,我在每个Y轴值上绘制了X轴标签。现在它几乎不可能阅读。

my chart

我想要的是如下图所示绘制的X轴标签,因此不是每个Y轴值,而是几个Y轴值,当我放大时,其余的值将动态显示

what I want

我吞下了guidie但是没有找到关于这个问题的任何内容。

编辑:

我的图表选项

        ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
        dataSets.add(set1);

        LineData lineData = new LineData(dataSets);
        lineData.setDrawValues(false);
        lineData.setHighlightEnabled(true);

        chart.setData(lineData);                      
        chart.setMaxVisibleValueCount(3);

        // description
        Description description = new Description();
        description.setTextColor(ColorTemplate.VORDIPLOM_COLORS[2]);
        description.setText("");
        chart.setDescription(description);

        // X-Axis
        IAxisValueFormatter formatter = new IAxisValueFormatter() {
            @Override
            public String getFormattedValue(float value, AxisBase axis) {
                return x_data[(int)value];
            }

            @Override
            public int getDecimalDigits() {
                return 0;
            }
        };
        chart.getXAxis().setValueFormatter(formatter);
        chart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);

        chart.getXAxis().setGranularity(1);
        //chart.getXAxis().setGranularityEnabled(true);

        //Y-Axis
        chart.getAxisLeft().setAxisMinimum(0f);
        chart.getAxisRight().setAxisMinimum(0f);

        // avg line
        Cursor avg = dbHelper.getAvg(id);
        avg.moveToFirst();

        if (avg.moveToFirst()) {

            YAxis leftAxis = chart.getAxisLeft();
            LimitLine ll = new LimitLine(avg.getFloat(0), "avg");
            ll.setLineColor(Color.BLUE);
            ll.setLineWidth(0.3f);
            ll.setTextColor(Color.BLACK);
            ll.setTextSize(6f);
            leftAxis.addLimitLine(ll);
        }

        chart.invalidate();

2 个答案:

答案 0 :(得分:0)

尝试一下: chart.getXAxis().setLabelCount(int count)

答案 1 :(得分:-1)

添加此行代码

 mChart.setMaxVisibleValueCount(6);

它可能会帮助你!!