当前位置: 首页 > 知识库问答 >
问题:

是否可以使用MPAndroidChart创建多色(堆叠)条形图?

仉梓
2023-03-14

我有以下数据使用MPAndroidChart库以图表格式表示:

Subject Marks       
    Needs Attention Average Outstanding
Hindi    1/5     2/5     2/5
English  2/7     3/7     2/7
Maths    1/3     1/3     1/3
Science  2/7     2/7     3/7
Physics  2/9     4/9     4/9
Sanskrit 3/7     3/5     0 

我想要一张如下的图表:

上面的图表只是示例,我想要每个条形图中的三种颜色(堆叠)。我已经制作了一个单独颜色的条形图,但不能制作这样的多颜色图表。在MPAndroidChart中可以吗?

共有2个答案

扈昀
2023-03-14

根据我的说法,您可以在mpchart库中进行逻辑设置

其他的

你可以使用achartengine

萧繁
2023-03-14

这被称为“堆积条形图”,可以在MPAndroidChart中使用。

Github repo for MPAndroidChart中有一个示例活动,由以下代码生成:

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

    for (int i = 0; i < size + 1; i++) {
        float mult = (size + 1);
        float val1 = (float) (Math.random() * mult) + mult / 3;
        float val2 = (float) (Math.random() * mult) + mult / 3;
        float val3 = (float) (Math.random() * mult) + mult / 3;

        yVals1.add(new BarEntry(
                i,
                new float[]{val1, val2, val3},
                getResources().getDrawable(R.drawable.star)));
    }

    BarDataSet set1;

    if (mChart.getData() != null &&
            mChart.getData().getDataSetCount() > 0) {
        set1 = (BarDataSet) mChart.getData().getDataSetByIndex(0);
        set1.setValues(yVals1);
        mChart.getData().notifyDataChanged();
        mChart.notifyDataSetChanged();
    } else {
        set1 = new BarDataSet(yVals1, "Statistics Vienna 2014");
        set1.setDrawIcons(false);
        set1.setColors(getColors());
        set1.setStackLabels(new String[]{"Births", "Divorces", "Marriages"});

        ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
        dataSets.add(set1);

        BarData data = new BarData(dataSets);
        data.setValueFormatter(new MyValueFormatter());
        data.setValueTextColor(Color.WHITE);

        mChart.setData(data);
    }

    mChart.setFitBars(true);
    mChart.invalidate();

输出如下所示:

 类似资料:
  • 问题内容: 我尝试使用achartengine向堆叠条形图的演示示例中添加另一组值,但我引入的新值未出现在图表上。堆叠杆是否限于两根? 问题答案: AChartEngine显示堆叠的条形图的方式存在误解。它并没有真正堆叠它们,而是将它们显示为一个。这意味着您将总是要先添加较大的值,然后再添加较小的值,依此类推,因为它呈现第一个序列,第二个序列位于第一个序列之上,依此类推。 更新:从1.2.0版开始

  • 我一直在寻找一种使用Chartjs绘制此图的方法,但没有成功。这在Chartjs中可能吗? 我想画的图表 我尝试的图表 以下是我的设置: 我知道如何设置堆叠条形图,只是不知道如何设置图像中的图例。任何帮助都很感激。提前感谢!

  • 我需要一种在ChartJS中显示堆叠条形图中多个数据段的方法。在官方文档中,标签属于堆栈的每个部分,但我需要这些部分是独立的。 我已经模拟了我需要实现的输出类型。我们每天有三个堆叠的条,每个条显示一个单独的数据集。在每个数据集中,我们有一个段,它实际上是该条的子集。 不幸的是,中的属性似乎不接受数组。这个图表可以使用ChartJS吗?

  • 我正在尝试使用MPAndroidChart在我的应用程序中创建图表。 但有一些具体的特点。 > 图形将比屏幕宽度宽,因此它必须具有最小宽度并可滚动(对于我正在使用的宽度,但它不可滚动):

  • 我有以下不同月份的数据 一月:[1,5,3] Feb:[10,5] 三月:[4,8] 四月:[7] 可能:[3,1,5,0,7] 我想生成如下所示的条形图 现在,我有以下代码,我想知道如何生成如上图所示的条形图。 }); 非常感谢。

  • Highcharts 条形图 以下实例演示了堆叠条形图。 我们在前面的章节已经了解了 Highcharts 基本配置语法。接下来让我们来看下其他的配置。 配置 plotOptions 配置图表堆叠使用 plotOptions.series.stacking,并设置为 "normal"。如果禁用堆叠可设置为 null , "normal" 通过值设置堆叠, "percent" 堆叠则按百分比。 v