根据MPAndroidChart中的Yaxis值更改雷达图的曲线颜色

时间:2019-01-17 01:00:57

标签: android charts mpandroidchart

我如下创建CustomRadarDataSet类来实现此目的,但是它根本不起作用。 getColor(index)始终执行else部分。不知道为什么X-index没有正确传递给getColor(index)。我确定我的值小于maxVal。同样的方法适用于BarDataSet和LineDataSet,但不适用于RadarDataSet。

public class CustomRadarDataSet extends RadarDataSet {

public CustomRadarDataSet(List<RadarEntry> yVals, String label) {
    super(yVals, label);
}

private float maxVal = 50;
public float getMaxVal() {
    return maxVal;
}
public void setMaxVal(float val) {
    this.maxVal = val;
}

@Override
public int getColor(int index) {
    if(getEntryForIndex(index).getY() < maxVal) 
        return mColors.get(0);
    else 
        return mColors.get(2);
}
}

这就是我使用CustomRadarDataSet的方式。

    ArrayList<IRadarDataSet> dataSets = new ArrayList<IRadarDataSet>();
    CustomRadarDataSet set = new CustomRadarDataSet(readings, "");
    set.setColors(new int[]{
                    Color.rgb(250,55,0), 
                    Color.rgb(0,0,255), 
                    Color.rgb(0,0,0)
                    });
    set.setMaxVal(maxReading); // get this value dynamically
    set.setHighlightEnabled(true);
    set.setDrawHighlightIndicators(true); 

    dataSets.add(set);
    RadarData data = new RadarData(dataSets);

    data.setValueTextSize(8f);
    data.setDrawValues(false);

修改 x索引正确,并且getY()也返​​回预期的读数,y值和maxVal的比较评估正确,但是以某种方式,连接曲线仍未获得正确的颜色。看起来这只是雷达图的限制。

0 个答案:

没有答案