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