Как разместить метку LimitLine на оси X? - PullRequest
0 голосов
/ 05 июня 2019

Я создаю линейную диаграмму с использованием библиотеки 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();


}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...