如何根据Y轴的值设置不同条形的颜色? 我正在使用MPAndroidChart库来制作图表。这就是我制作条形图所做的工作:
BarChart barChart = (BarChart) findViewById(R.id.chart);
BarDataSet dataset = new BarDataSet(entries, "Calorie Level");
ArrayList<String> labels = new ArrayList<String>();
labels.add("0");
labels.add("1");
labels.add("2");
BarData data = new BarData(labels, dataset);
barChart.setData(data);
barChart.animateY(2000);
我正在计算以下函数的值。我需要根据下面给出的'delta'的值设置每个柱的颜色
private void addCalories(int calories, int time)
{ totalCals += calories;
float HBNow = HBE * time / 24;
float delta = totalCals - HBNow;
entries.add(new BarEntry(delta, time));
Log.e("My Activity:", "Delta" + delta + "Time:" + time);
}
答案 0 :(得分:4)
你可以创建一个包含颜色的arraylist
ArrayList<Integer> colors = new ArrayList<Integer>();
colors.add(ContextCompat.getColor(this, R.color.dodger_blue));
colors.add(ContextCompat.getColor(this, R.color.peach));
colors.add(ContextCompat.getColor(this, R.color.medium_pink_three));
colors.add(ContextCompat.getColor(this, R.color.aqua));
colors.add(ContextCompat.getColor(this, R.color.greeny_blue));
colors.add(ContextCompat.getColor(this, R.color.charcoal));
colors.add(ContextCompat.getColor(this, R.color.charcoal_grey));
然后将此数组设置为您的图表数据集,如此
dataset.setColors(colors);
在addCalories()函数中,您可以使用自己的逻辑创建包含颜色的数组。计算完所有值后,可以将颜色设置为数据集。
答案 1 :(得分:0)
尝试使用barDataSet.setColor(Color.BLUE);
方法设置条形颜色
ArrayList<BarEntry> valueSet1 = new ArrayList<>();
BarEntry v1e1 = new BarEntry(8f, 0); // Jan
valueSet1.add(v1e1);
BarDataSet barDataSet1 = new BarDataSet(valueSet1, "Views");
barDataSet1.setColor(Color.BLUE);
ArrayList<BarDataSet> dataSets = new ArrayList<>();
dataSets.add(barDataSet1);
答案 2 :(得分:0)
这帮助我a为所需的列或片段获得了自定义颜色。确保按添加数据的顺序添加颜色,以便在所需的位置获得所需的颜色。
colors.add(ContextCompat.getColor(this, R.color.active));
colors.add(ContextCompat.getColor(this, R.color.recovered));
colors.add(ContextCompat.getColor(this, R.color.death));
dataSet.setColors(colors);