我正在使用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”中。

09-28 01:02