为折线图所占区域设置特定颜色
Set Specific Color to the Region Occupied by LineChart
我能够动态绘制标记并为我遇到的 LineChart.Now 设置不同的颜色,无法在 LineChart occupies.I 使用的区域中填充颜色 setS.setDrawFilled(true); 但它只填充一个 Color.How 这个问题可以解决吗?
int getColorRandom() {
Random rand = new Random();
int r = rand.nextInt(255);
int g = rand.nextInt(255);
int b = rand.nextInt(255);
int randomColor = Color.rgb(r, g, b);
return randomColor;
}
ArrayList<ILineDataSet> testDataSet1 = new ArrayList<>();
for (int i = 0; i < dataFilteredByTerm.size(); i++) {
ArrayList<JSONObject> values = dataFilteredByTerm.get(termIDs.get(i));
ArrayList<Entry> allMarks1 = new ArrayList<>();
for (int k = 0; k < values.size(); k++) {
allMarks1.add(new Entry(k, values.get(k).optInt("Marks")));
}
Labels.add(jsonArray.optJSONObject(i).optString("CourseName"));
System.out.println("Labels" + Labels);
// System.out.println("allMarks" + allMarks1);
setS = new LineDataSet(allMarks1, values.get(i).optString("examDescription")); // set different color for each set as your requirement testDataSet.add(set); } chart.setData(new LineData(testDataSet));
//testDataSet1.add(labels);
testDataSet1.add(setS);
setS.setMode(LineDataSet.Mode.CUBIC_BEZIER);
setS.setDrawValues(false);
// setS.setColor(Integer.parseInt((getColor.get(i))));
// int y= setS.setColors(getColor());
setS.setDrawFilled(true);
setS.setColors(getColorRandom());
}
// System.out.println("Date Filtered by Date" + dataFilteredByTerm);
YAxis leftAxis = chart.getAxisRight();
leftAxis.setEnabled(false);
//chart.setBorderColor(Color.RED);
chart.setData(new LineData(testDataSet1));
chart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(Labels));
chart.notifyDataSetChanged();
chart.invalidate();
需要图片
正在获取图像
I don't know where i am doing wrong.Every time the only one Color Fill
all the region.How can the Region be Filled with specific line Color
using MPAndroidChart
我自己解决了这个问题,只是一个简单的 twik 就完成了。
刚刚添加了这个内置方法,输出看起来很棒
setS.setColors(getColorRandom());
setS.setDrawFilled(true);
setS.setFillColor(getColorRandom());
图片
我能够动态绘制标记并为我遇到的 LineChart.Now 设置不同的颜色,无法在 LineChart occupies.I 使用的区域中填充颜色 setS.setDrawFilled(true); 但它只填充一个 Color.How 这个问题可以解决吗?
int getColorRandom() {
Random rand = new Random();
int r = rand.nextInt(255);
int g = rand.nextInt(255);
int b = rand.nextInt(255);
int randomColor = Color.rgb(r, g, b);
return randomColor;
}
ArrayList<ILineDataSet> testDataSet1 = new ArrayList<>();
for (int i = 0; i < dataFilteredByTerm.size(); i++) {
ArrayList<JSONObject> values = dataFilteredByTerm.get(termIDs.get(i));
ArrayList<Entry> allMarks1 = new ArrayList<>();
for (int k = 0; k < values.size(); k++) {
allMarks1.add(new Entry(k, values.get(k).optInt("Marks")));
}
Labels.add(jsonArray.optJSONObject(i).optString("CourseName"));
System.out.println("Labels" + Labels);
// System.out.println("allMarks" + allMarks1);
setS = new LineDataSet(allMarks1, values.get(i).optString("examDescription")); // set different color for each set as your requirement testDataSet.add(set); } chart.setData(new LineData(testDataSet));
//testDataSet1.add(labels);
testDataSet1.add(setS);
setS.setMode(LineDataSet.Mode.CUBIC_BEZIER);
setS.setDrawValues(false);
// setS.setColor(Integer.parseInt((getColor.get(i))));
// int y= setS.setColors(getColor());
setS.setDrawFilled(true);
setS.setColors(getColorRandom());
}
// System.out.println("Date Filtered by Date" + dataFilteredByTerm);
YAxis leftAxis = chart.getAxisRight();
leftAxis.setEnabled(false);
//chart.setBorderColor(Color.RED);
chart.setData(new LineData(testDataSet1));
chart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(Labels));
chart.notifyDataSetChanged();
chart.invalidate();
需要图片
正在获取图像
I don't know where i am doing wrong.Every time the only one Color Fill all the region.How can the Region be Filled with specific line Color using MPAndroidChart
我自己解决了这个问题,只是一个简单的 twik 就完成了。
刚刚添加了这个内置方法,输出看起来很棒
setS.setColors(getColorRandom());
setS.setDrawFilled(true);
setS.setFillColor(getColorRandom());
图片