MPAndroidChart条件数据集颜色

时间:2015-10-03 03:51:30

标签: android charts colors mpandroidchart

大家好:我想知道是否有更好的方法来使用MPAndroidChart条件着色条。我的解决方案是创建一个条件数组颜色,如下所示:

private void setDataColored(List<String> labels, List<Float> values) {

    final int greenColor = Color.parseColor("#66bb6a");
    final int redColor = Color.parseColor("#ef5350");
    ArrayList<BarEntry> entries = new ArrayList<>();
    List<Integer> colors = new ArrayList<>();

    for (int pos = 0; pos < values.size(); pos++) {
        Float value = values.get(pos);
        entries.add(new BarEntry(Math.abs(value), pos));
        colors.add(value >= 0 ? greenColor : redColor);
    }

    BarDataSet dataset = new BarDataSet(entries, "Values");
    dataset.setColors(colors);

    ArrayList<BarDataSet> dataSets = new ArrayList<BarDataSet>();
    dataSets.add(dataset);

    BarData data = new BarData(labels, dataSets);
    data.setDrawValues(true);

    mChart.setData(data);
}

我担心性能,因为我需要创建这个colors数组。派生问题是图例:我无法正确显示红色和绿色的含义。

1 个答案:

答案 0 :(得分:1)

我看到文档here

我们可以根据动态条件将不同的颜色应用到条形图上。现在让我们看看你的问题,你有浮点值数组需要与颜色数组匹配。如果值为负,则应以RED表示,正值应显示为绿色。

您可以使用LineDataSet代替颜色数组,例如见下:

long