如何在X轴上放置LimitLine的标签?

时间:2019-06-05 09:56:08

标签: android label mpandroidchart linechart

我正在使用MPAndroidChart库创建折线图,该库显示我的睡眠跟踪应用程序的用户获得的平均睡眠时间。我还添加了一个限制线,显示用户为该月设置的睡眠时间目标。但是我希望LimitLine对象的标签显示在X轴上,而不是在图形内。

我尝试使用setLabelPosition作为对象的LimitLine对象的XAxis.XAxisPosition.BOTTOM方法,但是由于类型不同,它无法工作。有人可以帮我解决这个问题吗?这是创建图形的代码:


public void plot (ArrayList<GoalAnalyzer> analyzers ){
    ArrayList<Entry> Entry = new ArrayList<>();

    for(int counter=66;counter<analyzers.size();counter++){
        Log.e("analyzers", analyzers.get(counter).getX_axis_value() + " " + analyzers.get(counter).getY_axis_value());

        Entry.add(new Entry(analyzers.get(counter).getX_axis_value(), (float) analyzers.get(counter).getY_axis_value()));
    }

    XAxis xAxis = goalAnalyzerLineChart.getXAxis();
    YAxis yAxisLeft = goalAnalyzerLineChart.getAxisLeft();
    YAxis yAxisRight = goalAnalyzerLineChart.getAxisRight();

    xAxis.setGridColor(Color.LTGRAY);
    yAxisLeft.setGridColor(Color.LTGRAY);
    yAxisRight.setEnabled(false);
    xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
    xAxis.setDrawLabels(true);


    goalAnalyzerLineChart.getDescription().setText("Description of my chart");
    goalAnalyzerLineChart.setMinimumWidth(4);

    LineDataSet lineDataSet = new LineDataSet(Entry, "My Average");
    LineData data = new LineData(lineDataSet);
    lineDataSet.setValueTextSize(10f);
    lineDataSet.setColor(Color.rgb(3, 169, 244));
    lineDataSet.setCircleColor(Color.rgb(3, 169, 244));

    LimitLine limit = new LimitLine(6.265f,"kati");
    limit.setLineWidth(4f);
    limit.setLineColor(Color.rgb(255,210,60));
    limit.enableDashedLine(8f, 5f, 0f);
    limit.setLabelPosition(LimitLine.LimitLabelPosition.RIGHT_BOTTOM);

    limit.setTextSize(10f);
    yAxisLeft.addLimitLine(limit);
    yAxisLeft.setDrawLimitLinesBehindData(true);


    goalAnalyzerLineChart.setData(data);
    goalAnalyzerLineChart.invalidate();


}

0 个答案:

没有答案