我正在使用mpandroidchart,并且我只想为LineDataSet中的一个条目绘制一个圆圈,而不是其余部分。我尝试使用两个LineDataSets完成它,但是到目前为止还没有奏效。这是我的代码:
LineDataSet scoreDataSet = new LineDataSet(values, "Score");
scoreDataSet.setDrawCircles(false);
// Entry with max value is the last one
Entry circleEntry = scoreDataSet.getEntryForXIndex(scoreDataSet.getEntryCount()-1);
LineDataSet circularDataSet = new LineDataSet(values, "Score");
circularDataSet.setDrawCircles(true);
int size = circularDataSet.getEntryCount()-1;
for (int i=0; i<size; i++) {
if (i != circleEntry.getXIndex()) {
circularDataSet.removeEntry(circularDataSet.getEntryForXIndex(i));
}
}
.
.
.
ArrayList<LineDataSet> dataSets = new ArrayList<LineDataSet>();
dataSets.add(scoreDataSet);
dataSets.add(circularDataSet);
这只是打印一个点(circularDataSet)而不是scoreDataSet。我期望它合并两个数据集,以便用一个圆标记最高值,并将其余的绘制为折线图。
最佳答案
您的方法总体上看起来不错,只有一些缺陷。
不要创建“ circularDataSet”,并使用与“ scoreDataSet”相同的值对其进行初始化,然后删除除一个以外的所有值。
相反,您应该做的是在“ scoreDataSet”中找到最大的条目,然后仅将此单个条目添加到“ circularDataSet”中。