MPAndroidChart:组合图表

MPAndroidChart: Combined Chart

我正在使用 MPAndroidChart library

我想使用 CombinedChart 创建这样的图表:

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

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

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

您可以创建自定义的 class 来扩展视图,并在 onDraw 方法中为条形图创建具有所需高度、宽度和位置的矩形。对于明显的线条井,设置描边使其更明显。

我使用自定义视图在我的应用程序中创建栏WhiteMarker and lines in Chron

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

更新:v3.0.0+

CombinedChart 的示例已得到扩展,现在允许堆叠条形图和分组条形图以及其他图表类型。

CombinedChart设置数据的实质是CombinedDataclass。它可以填充各种其他数据,例如 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。

由于接受的答案有损坏的链接,您应该使用:

<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);

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