带有MPAndroidChar的GroupBar(android studio)

带有MPAndroidChar的GroupBar(android studio),android,android-studio,charts,mpandroidchart,Android,Android Studio,Charts,Mpandroidchart,我试图用MPAndroidChar制作一张图表,显示每年3个学期(每个学期涂上不同的颜色),在每个学期的顶部有本学期的成绩 我成功地绘制了一张图表,但我不知道如何将所有的学期分为一年 运行应用程序后,我附加了条形码、xml和屏幕截图。 守则: BarChart chart = (BarChart) findViewById(R.id.chart); ArrayList<BarEntry> vals1 = new ArrayList<BarEntry>();

我试图用MPAndroidChar制作一张图表,显示每年3个学期(每个学期涂上不同的颜色),在每个学期的顶部有本学期的成绩

我成功地绘制了一张图表,但我不知道如何将所有的学期分为一年

运行应用程序后,我附加了条形码、xml和屏幕截图。 守则:

BarChart chart = (BarChart) findViewById(R.id.chart);
        ArrayList<BarEntry> vals1 = new ArrayList<BarEntry>();
        ArrayList<BarEntry> vals2 = new ArrayList<BarEntry>();

        ArrayList<BarEntry> entries = new ArrayList<>();

        entries.add(new BarEntry(90, 0)); //year 1 - sem 1
        entries.add(new BarEntry(69, 1)); //year 1 - sem 2
        entries.add(new BarEntry(96, 2)); //year 1 - sem 3
        BarDataSet dataset = new BarDataSet(entries, "# of Calls");

        ArrayList<String> labels = new ArrayList<String>();
        labels.add("year 1");
        labels.add("year 1");
        labels.add("year 1");
        BarData data = new BarData(labels, dataset);
        chart.setData(data);

        chart.setDescription("# of times Alice called Bob");
BarChart chart=(BarChart)findviewbyd(R.id.chart);
ArrayList vals1=新的ArrayList();
ArrayList vals2=新的ArrayList();
ArrayList条目=新的ArrayList();
增加(新巴伦特里(90,0))//第一年-sem 1
增加(新巴伦特里(69,1))//第一年-2
增加(新巴伦特里(96,2))//第一年-3
BarDataSet数据集=新的BarDataSet(调用项“#”);
ArrayList标签=新的ArrayList();
标签。添加(“第1年”);
标签。添加(“第1年”);
标签。添加(“第1年”);
BarData数据=新的BarData(标签、数据集);
图表.设置数据(数据);
chart.setDescription(“爱丽丝叫鲍勃的时代”);
BarChart.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/bottomSection"
        android:padding="10dp">
        <com.github.mikephil.charting.charts.BarChart
            android:id="@+id/chart"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>
</LinearLayout>

代码结果:

我想要什么(很抱歉,我做了最糟糕的编辑):


为此,您必须使用多个条形图
为此,您必须使用多个条形图

条形图=(条形图)查找视图id(R.id.chart);
ArrayList vals1=新的ArrayList();
ArrayList vals2=新的ArrayList();
ArrayList vals3=新的ArrayList();
vals1.添加(新巴伦特里(90,0));
vals2.添加(新巴伦特里(69,1));
vals3.添加(新巴伦特里(96,2));
BarDataSet datasetSem1=新的BarDataSet(vals1,调用次数);
datasetSem1.setColor(Color.RED);
BarDataSet datasetSem2=新的BarDataSet(vals2,调用次数);
datasetSem2.setColor(Color.GREEN);
BarDataSet datasetSem3=新的BarDataSet(vals3,调用次数);
datasetSem3.setColor(Color.BLUE);
列表数据集=新的ArrayList();
dataSets.add(datasetSem1);
dataSets.add(datasetSem2);
dataSets.add(datasetSem3);
ArrayList标签=新的ArrayList();
标签。添加(“第1年”);
标签。添加(“第1年”);
标签。添加(“第1年”);
BarData数据=新的BarData(标签、数据集);
图表.设置数据(数据);
条形图=(条形图)查找视图id(R.id.chart);
ArrayList vals1=新的ArrayList();
ArrayList vals2=新的ArrayList();
ArrayList vals3=新的ArrayList();
vals1.添加(新巴伦特里(90,0));
vals2.添加(新巴伦特里(69,1));
vals3.添加(新巴伦特里(96,2));
BarDataSet datasetSem1=新的BarDataSet(vals1,调用次数);
datasetSem1.setColor(Color.RED);
BarDataSet datasetSem2=新的BarDataSet(vals2,调用次数);
datasetSem2.setColor(Color.GREEN);
BarDataSet datasetSem3=新的BarDataSet(vals3,调用次数);
datasetSem3.setColor(Color.BLUE);
列表数据集=新的ArrayList();
dataSets.add(datasetSem1);
dataSets.add(datasetSem2);
dataSets.add(datasetSem3);
ArrayList标签=新的ArrayList();
标签。添加(“第1年”);
标签。添加(“第1年”);
标签。添加(“第1年”);
BarData数据=新的BarData(标签、数据集);
图表.设置数据(数据);

你有没有图片可以说明你想添加到主帖子的结果。你有没有图片可以说明你想添加到主帖子的结果。我做了,但是,我如何向图表中添加新数据?你说的新数据是什么意思?我的意思是,我如何创建图表-添加“第1年”,并在第1年中插入semA、semB、semC的值..我给了你一个链接sameI中有一个例子,但是我怎样才能向图表中添加新数据呢?你说的新数据是什么意思?我的意思是,我如何实质性地创建图表-添加“第一年”,并在第一年中插入semA、semB、semC的值。我已经给了你链接,在同一个链接中有一个示例
    BarChart chart = (BarChart) findViewById(R.id.chart);

    ArrayList<BarEntry> vals1 = new ArrayList<BarEntry>();
    ArrayList<BarEntry> vals2 = new ArrayList<BarEntry>();
    ArrayList<BarEntry> vals3 = new ArrayList<BarEntry>();
    vals1.add(new BarEntry(90, 0));
    vals2.add(new BarEntry(69, 1));
    vals3.add(new BarEntry(96, 2));

    BarDataSet datasetSem1 = new BarDataSet(vals1, "# of Calls");
    datasetSem1.setColor(Color.RED);

    BarDataSet datasetSem2 = new BarDataSet(vals2, "# of Calls");
    datasetSem2.setColor(Color.GREEN);

    BarDataSet datasetSem3 = new BarDataSet(vals3, "# of Calls");
    datasetSem3.setColor(Color.BLUE);

    List<BarDataSet> dataSets = new ArrayList<>();
    dataSets.add(datasetSem1);
    dataSets.add(datasetSem2);
    dataSets.add(datasetSem3);

    ArrayList<String> labels = new ArrayList<String>();
    labels.add("year 1");
    labels.add("year 1");
    labels.add("year 1");
    BarData data = new BarData(labels, dataSets);
    chart.setData(data);