Android中的MPChart按自定义值构建饼图
这是库setData的方法。我有四个值Android中的MPChart按自定义值构建饼图,android,charts,pie-chart,mpandroidchart,Android,Charts,Pie Chart,Mpandroidchart,这是库setData的方法。我有四个值q1、q2、q3、q4,总共四个值,所以我的总数应该是10000q1=1000、q2=500、q3=500、q4=8000。那么,我如何在这里传递所有这些值并生成我自己的图表呢?看,这些数据来自我的API,所以对于每个用户来说,如果数据不同,那么图表是根据这些数据值构建的 private void setData(int count, float range){ float mult = range; ArrayList<En
q1、q2、q3、q4,总共四个值,所以我的总数应该是10000q1=1000、q2=500、q3=500、q4=8000
。那么,我如何在这里传递所有这些值并生成我自己的图表呢?看,这些数据来自我的API,所以对于每个用户来说,如果数据不同,那么图表是根据这些数据值构建的
private void setData(int count, float range){
float mult = range;
ArrayList<Entry> yVals1 = new ArrayList<Entry>();
// IMPORTANT: In a PieChart, no values (Entry) should have the same
// xIndex (even if from different DataSets), since no values can be
// drawn above each other.
for (int i = 0; i < count + 1; i++) {
//yVals1.add(new Entry((float) (Math.random() * mult) + mult / 5, i));
yVals1.add(new Entry((float)(dislikeval), i));
}
ArrayList<String> xVals = new ArrayList<String>();
for (int i = 0; i < count + 1; i++)
xVals.add(mParties[i % mParties.length]);
PieDataSet dataSet = new PieDataSet(yVals1, "Election Results");
dataSet.setSliceSpace(2f);
dataSet.setSelectionShift(5f);
// add a lot of colors
ArrayList<Integer> colors = new ArrayList<Integer>();
for (int c : ColorTemplate.VORDIPLOM_COLORS)
colors.add(c);
for (int c : ColorTemplate.JOYFUL_COLORS)
colors.add(c);
for (int c : ColorTemplate.COLORFUL_COLORS)
colors.add(c);
for (int c : ColorTemplate.LIBERTY_COLORS)
colors.add(c);
for (int c : ColorTemplate.PASTEL_COLORS)
colors.add(c);
colors.add(ColorTemplate.getHoloBlue());
dataSet.setColors(colors);
//dataSet.setSelectionShift(0f);
PieData data = new PieData(xVals, dataSet);
data.setValueFormatter(new PercentFormatter());
data.setValueTextSize(11f);
data.setValueTextColor(Color.WHITE);
data.setValueTypeface(tf);
mChart.setData(data);
// undo all highlights
mChart.highlightValues(null);
mChart.invalidate();
}
private void setData(整数计数,浮点范围){
浮动倍数=范围;
ArrayList yVals1=新的ArrayList();
//重要提示:在PieChart中,任何值(条目)都不应具有相同的值
//xIndex(即使来自不同的数据集),因为没有值可以
//在彼此之上画的。
对于(int i=0;i
您可以使用以下代码执行此操作:
private void setData() {
// Label for each slice
String[] valueArray = new String[] { "Q1", "Q2", "Q3" };
// Values for pie chart
ArrayList<Entry> yVals1 = new ArrayList<Entry>();
yVals1.add(new Entry(1000, 0));
yVals1.add(new Entry(2000, 2));
yVals1.add(new Entry(3000, 1));
ArrayList<String> xVals = new ArrayList<String>();
for (int i = 0; i < valueArray.length + 1; i++)
xVals.add(valueArray[i % valueArray.length]);
PieDataSet dataSet = new PieDataSet(yVals1, "");
dataSet.setSliceSpace(2f);
dataSet.setSelectionShift(5f);
// add a lot of colors
ArrayList<Integer> colors = new ArrayList<Integer>();
for (int c : ColorTemplate.VORDIPLOM_COLORS)
colors.add(c);
for (int c : ColorTemplate.JOYFUL_COLORS)
colors.add(c);
for (int c : ColorTemplate.COLORFUL_COLORS)
colors.add(c);
for (int c : ColorTemplate.LIBERTY_COLORS)
colors.add(c);
for (int c : ColorTemplate.PASTEL_COLORS)
colors.add(c);
colors.add(ColorTemplate.getHoloBlue());
dataSet.setColors(colors);
//dataSet.setSelectionShift(0f);
PieData data = new PieData(xVals, dataSet);
data.setValueFormatter(new PercentFormatter());
data.setValueTextSize(12f);
data.setValueTextColor(Color.WHITE);
data.setValueTypeface(tf);
mChart.setData(data);
// undo all highlights
mChart.highlightValues(null);
mChart.invalidate();
}
private void setData(){
//每个切片的标签
字符串[]valueArray=新字符串[]{“Q1”、“Q2”、“Q3”};
//饼图的值
ArrayList yVals1=新的ArrayList();
yVals1.添加(新条目(1000,0));
yVals1.add(新条目(2000,2));
yVals1.添加(新条目(3000,1));
ArrayList xVals=新的ArrayList();
对于(int i=0;i
它没有生成piechartu r,也从服务器获取数据否,我使用的是sqlite数据库,我刚刚更改了此函数,并将数组作为值和标签的参数传递