绘制多个图表一中MPAndroidChart [英] Plot Multiple Charts in one in MPAndroidChart

查看:119
本文介绍了绘制多个图表一中MPAndroidChart的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要绘制两个不同的数据集在一个图表。

I have to plot two different dataSets in a single graph.

数据集-1

    String[] xAxisOne = new String[] {
            "0", "1", "2", "3", "4", "5", "6"
    };

    float[] dataInput = {
            1f, 2f, 3f, 4f, 5f, 6f, 7f
    };

数据集-2

    String[] xAxisTwo = new String[] {
            "0", "2", "4", "5", "6", "8", "9"
    };

    float[] dataIn = {
            3f, 4f, 5f, 6f, 7f, 8f, 9f
    };

在上面的数据,数据集-1是由哪个图形创建参考。 数据集-2已经被绘制在同组不同的x值 {xAxisTwo}

In the above data, DataSet-1 is reference by which graph is created. DataSet-2 has to be plotted in the same with different set of X-Values {xAxisTwo}.

在现有的实施,前6个值 {}的DataInput 绘制和放大器;接下来的6值的 {} DATAIN 绘制参照 xAxisOne ,如何绘制的要求。

In existing Implementation, first 6 values {dataInput} are plotted & next 6 values {dataIn} are plotted with reference to xAxisOne, How to plot as required.

推荐答案

您可以应用于LineChart,统一x轴,而忽略了零点,每个数据集执行此操作。请参见下面的code:

You can do this with LineChart and unifying the xAxis and ignoring the "null" point for each dataset. See the code below:

//float[] dataInput = {
//      1f, 2f, 3f, 4f, 5f, 6f, 7f
//};

//values for datainput Dataset1 at your axisone positions
ArrayList<Entry> dataset1 = new ArrayList<Entry>();
dataset1.add(new Entry(1f, 0));
dataset1.add(new Entry(2f, 1));
dataset1.add(new Entry(3f, 2));
dataset1.add(new Entry(4f, 3));
dataset1.add(new Entry(5f, 4));
dataset1.add(new Entry(6f, 5));
dataset1.add(new Entry(7f, 6));

//float[] dataIn = {
//      3f, 4f, 5f, 6f, 7f, 8f, 9f
//};

//values for datainput Dataset2 at your axisone positions
ArrayList<Entry> dataset2 = new ArrayList<Entry>();
dataset2.add(new Entry(3f, 0));
dataset2.add(new Entry(4f, 2));
dataset2.add(new Entry(5f, 4));
dataset2.add(new Entry(6f, 5));
dataset2.add(new Entry(7f, 6));
dataset2.add(new Entry(8f, 7));
dataset2.add(new Entry(9f, 8));

//String[] xAxisOne = new String[] {
//      "0", "1", "2", "3", "4", "5", "6"
//};

///String[] xAxisTwo = new String[] {
///     "0", "2", "4", "5", "6", "8", "9"
///};


// Union from xAxisOne and xAxisTwo
String[] xAxis = new String[] {"0", "1", "2", "3", "4", "5", "6", "8", "9"};


ArrayList<LineDataSet> lines = new ArrayList<LineDataSet> ();

LineDataSet lDataSet1 = new LineDataSet(dataset1, "DataSet1");
lDataSet1.setColor(Color.RED);
lDataSet1.setCircleColor(Color.RED);
lines.add(lDataSet1);
lines.add(new LineDataSet(dataset2, "DataSet2"));

LineChart chart = (LineChart) getView().findViewById(R.id.chart);
chart.setData(new LineData(xAxis, lines));

的最终结果将是:

The final result will be:

最终图表

看着为dataSet1的红​​线比蓝线2分以上。 如果为dataSet1只有这两点(在和1位3)是这样的:

Looks that the red line of dataset1 have 2 more points than blue line. If the dataset1 have only these two points(at position 1 and 3) like this:

ArrayList<Entry> dataset1 = new ArrayList<Entry>();
    dataset1.add(new Entry(2f, 1));
    dataset1.add(new Entry(4f, 3));

这将是结果:

it will be the result:

输入图像的描述在这里

这篇关于绘制多个图表一中MPAndroidChart的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆