如何在图表中仅设置一个(最大)值的DrawCircles()?

时间:2015-05-13 19:25:29

标签: android mpandroidchart

我正在使用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。我希望它能合并两个DataSet,以便用圆圈标记最高值,并将其余部分绘制成折线图。

1 个答案:

答案 0 :(得分:1)

你的方法总的来说看起来不错,只有一些缺陷。

不要创建“circularDataSet”并使用与“scoreDataSet”相同的值对其进行初始化,然后删除除一个之外的所有值。

你应该做的是在“scoreDataSet”中找到最大的条目,然后只将这个条目添加到“circularDataSet”。