gpt4 book ai didi

android - Graphview,条形颜色每隔一个

转载 作者:行者123 更新时间:2023-11-29 23:28:05 27 4
gpt4 key购买 nike

提前抱歉,这是我的第一篇文章。所以我想做的是每隔一个栏设置不同的颜色。我所看到的是,您可以使用

根据 y 值更改颜色

setValueDependentColor

不知道我应该怎么做。

 BarGraphSeries<DataPoint> series;       //an Object of the PointsGraphSeries for plotting scatter graphs
series= new BarGraphSeries<>(generateData()); //initializing/defining series to get the data from the method 'data()
graph.addSeries(series); //adding the series to the GraphView
series.setSpacing(0);

private DataPoint[] generateData() {
mDatabaseHelper = new DatabaseHelper(this);
Cursor data = mDatabaseHelper.getData();
ArrayList<String> y_axis = new ArrayList<>();
while(data.moveToNext()){
//get the value from the database in column 1
//then add it to the ArrayList
y_axis.add(data.getString(1));
}
int n=y_axis.size(); //to find out the no. of data-

Log.d("elements", String.valueOf(n));
DataPoint[] values = new DataPoint[n]; //creating an object of type DataPoint[] of size 'n'
for(int i=0;i<n;i++){
int x=i+1;
DataPoint v = new DataPoint(x,Double.parseDouble(y_axis.get(i)));
values[i] = v;
Log.d("xypoints", String.valueOf(x));

}
return values;
}

最佳答案

如果你想让颜色依赖于实际值,你可以这样做:

barGraphSeries.setValueDependentColor(new ValueDependentColor<DataPoint>() {
@Override
public int get(DataPoint data) {
return Color.rgb((int) data.getX()*255/2, (int) Math.abs(data.getY()*255/3), 100);
}
});

rgb() 方法采用 0-255 之间的每个参数值。您可以通过传入特定值来设置特定颜色,或者执行类似于上面代码的操作,其中根据您的 (x,y) 点,结果会有所不同。这里选择的数字是随机的,但在可接受的 RGB 值范围内。根据您拥有的 X、Y 的最大值,您应该更改我使用的相应分隔符 (2、3)。

如果你想为每个系列设置一个预定的颜色,你可以这样设置:

 barGraphSeries.setColor(255,0,0); //for red

这是一个 RGB 计算器: RGB Colours

编辑:根据要求添加了以下代码,以用偶数 X 红色和奇数 X 蓝色绘制每个图形:

if(data.getX() % 2 ==0){
barGraphSeries.setColor(255,0,0);
} else {
barGraphSeries.setColor(0,0,255);
}

关于android - Graphview,条形颜色每隔一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53156648/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com