我想为BarChart
MPAndroidChart
中的栏设置特定颜色。我根据文档做了一切,但颜色没有变化。
这是我的代码:
barChart = (BarChart) findViewById(R.id.bar_chart);
List<BarEntry> entries = new ArrayList<BarEntry>();
entries.add(new BarEntry(1.0f, 10.0f)); //tmp values
BarDataSet dataSet = new BarDataSet(entries, "bars");
dataSet.setColor(R.color.red); //color from resourses
BarData barData = new BarData(dataSet);
barChart.setData(barData);
barChart.invalidate();
有趣的是,在我尝试改变酒吧的颜色之前,酒吧是蓝色的,在我试图改变它的颜色后,它变成了灰色(无论它必须是什么颜色)。我不明白为什么颜色不会改变。
我还试图覆盖getColor
类中的BarDataSet
方法,但结果是相同的 - 条形图是灰色的。
答案 0 :(得分:8)
更改此行,
dataSet.setColor(R.color.red); //resource id of a color
to,
dataSet.setColor(getResources().getColor(R.color.red)); //resolved color
当您调用setColor
时,您需要传入一个表示RGB三元组的整数。 R.color.red
不是RGB三元组,而是一个表示R.java
中的资源的整数。
有关资源ID和已解析颜色之间差异的详情,请参阅this question。
答案 1 :(得分:2)
import csv
with open('D:/test.csv', 'r') as f, open('D:/out.csv', 'w') as f_out:
reader = csv.DictReader(f)
writer = csv.DictWriter(f_out, fieldnames=reader.fieldnames)
writer.writeheader() # For writing header
for row in reader:
if row['ICLEVEL'] == '1':
writer.writerow(row)
答案 2 :(得分:1)
如果要设置颜色,可以创建颜色数组。然后将该数组设置为Bardataset。 示例如下。
int[] colors = {Color.rgb(153, 193, 12), Color.rgb(179, 130, 76)};
Bardataset.setColors(colors);
我认为你应该按照这个顺序编写你的代码。 看看下面:
BarDataSet dataSet = new BarDataSet(entries, "bars");
dataSet.setColor(Color.parseColor("#104E78"));
BarData barData = new BarData(dataSet);
试试吧。
答案 3 :(得分:0)
我们可以这样改变颜色。
bardataset.setColors(new int[]{getResources().getColor(R.color.red)});