我正在使用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();
}