MPAndroidChart:组合图表

时间:2015-06-25 16:42:07

标签: android mpandroidchart

我正在使用MPAndroidChart library

我想使用CombinedChart创建一个类似的图表:

enter image description here

这可能吗?我试了一下,但它似乎没有用,因为 条目不按我的预期工作。你不能说一个条目 x轴上的值为2,y轴上的值为300。我也不能创造 两个不同的y轴,一个用于条形,一个用于线条。

一些奇怪的事情是MPAndroidChart首先添加所有x值 之后所有的y值都没有可能控制 哪个y值属于哪个x值,因为它只是插入 y值按其出现的顺序排列并与下一个相关联 x值。

有什么方法可以用MPAndroidChart创建这样的图表。 我实际上不想被迫使用谷歌图表因为 需要互联网连接(但创建这种图表会 与Google Charts完美配合。)

3 个答案:

答案 0 :(得分:1)

You can create a custom class that extends View and in onDraw method create Rectangles of the required height, width and position for bars. As for the lines well that's obvious, set the stroke to make it more visible.

I have used a custom View to create bars in my app WhiteMarker and lines in Chron.

答案 1 :(得分:1)

  • 你可以拥有2个不同的轴
  • 你可以控制哪个y值属于哪个x值(当然!)
  • 查看combined-chart-example
  • 看起来像这样:

enter image description here

更新:v3.0.0 +

CombinedChart的示例已经扩展,现在允许堆叠条和分组条与其他图表类型一起使用。

CombinedChart设置数据的本质是CombinedData类。它可以填充各种其他数据,例如LineDataBarData等:

    CombinedData data = new CombinedData();

    data.setData(generateLineData()); // set LineData...
    data.setData(generateBarData()); // set BarData...
    data.setData(generateBubbleData());
    data.setData(generateScatterData());
    data.setData(generateCandleData());

    chart.setData(data);
    chart.invalidate();

如何创建例如可以在setting data文档中找到LineData。

答案 2 :(得分:1)

由于被接受的aswer链接断开,您应该使用:

<com.github.mikephil.charting.charts.CombinedChart
        android:id="@+id/chart"/>

使用您的XML

然后是一些代码:

        LineData linearData = new LineData(set1);
        // Set you LinearData

        BarData barData = new BarData(set2);
        // Set you LinearData

        CombinedData data=new CombinedData();
        data.setData(linearData);
        data.setData(barData);

编辑: 原始答案已被修改以反映我刚才写的内容。链接已更新,并添加了一些代码。