【问题标题】:MPAndroidChart BarChart Grouped DataSetsMPAndroidChart BarChart 分组数据集
【发布时间】:2014-11-11 23:50:19
【问题描述】:

我正在使用 MPAndroidChart library 版本 v2。我正在尝试显示 3 个条形图,其中的数据取自数据库。 不幸的是,不是看到 3 个条形图及其数据,而是以相同的结果查看它们。请参阅屏幕截图。感谢您的帮助。

int [] x = {1,2,3};
Cursor c = db.rawQuery(sql, null);
        int count = c.getCount();

        float value1 ;
        float value2 ;
        float value3 ;
        String[] mesi = new String[count];

        for(int n=0; n<count; n++) {
            c.moveToNext();     
            mesi[n]= c.getString(0);              
            value1 = c.getFloat(1);
            value2 = c.getFloat(2);
            value3 = c.getFloat(3);

            ArrayList<String> xVals = new ArrayList<String>();
            for (int i = 0; i <x.length; i++) {
                 xVals.add(x.length + " " + mChart.getUnit());              
            }

            ArrayList<BarEntry> yVals1 = new ArrayList<BarEntry>();
            ArrayList<BarEntry> yVals2 = new ArrayList<BarEntry>();
            ArrayList<BarEntry> yVals3 = new ArrayList<BarEntry>();

            for (int i = 0; i < x.length; i++) {                  
                yVals1.add(new BarEntry(value1, i));
            }

            for (int i = 0; i < x.length; i++) {                
                yVals2.add(new BarEntry(value2, i));
            }

            for (int i = 0; i < x.length; i++) {                  
                yVals3.add(new BarEntry(value3, i));
            }

         // create 3 datasets with different types
            BarDataSet set1 = new BarDataSet(yVals1, "Company A");
            set1.setColor(Color.rgb(104, 241, 175));
            BarDataSet set2 = new BarDataSet(yVals2, "Company B");
            set2.setColor(Color.rgb(164, 228, 251));
            BarDataSet set3 = new BarDataSet(yVals3, "Company C");
            set3.setColor(Color.rgb(242, 247, 158));

            ArrayList<BarDataSet> dataSets = new ArrayList<BarDataSet>();
            dataSets.add(set1);
            dataSets.add(set2);
            dataSets.add(set3);

            BarData data = new BarData(xVals, dataSets);

            // add space between the dataset groups in percent of bar-width
            data.setGroupSpace(0);

            mChart.setData(data);
            mChart.invalidate();

}               
        c.close();  
    db.close();

}

结果

【问题讨论】:

    标签: android mpandroidchart


    【解决方案1】:

    您是否对图表应显示的值进行了 logcat 输出? 可能它们没有正确存储在数据库中。

    您的代码对我来说似乎是正确的。

    您也可以通过简单地提供一个预定义的值来测试它,例如50 为所有条形图,看看它是否绘制正确。

    改变颜色调用:

    BarDataSet.setColor(...);

    更新:现在有一个关于如何创建分组BarCharts的非常详细的教程,可以在库的官方GitHub页面上找到,基于版本v3.0.0:Grouped BarChart tutorial

    【讨论】:

    • 好的,解决了,谢谢...现在我该如何更改颜色值?我设法只改变了那些传说。谢谢
    • 谢谢,我真的很喜欢你的图书馆。你做得很好。
    猜你喜欢
    • 2021-11-04
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多