MPAndroidChart中的DateTime轴

时间:2015-06-21 09:43:16

标签: android mpandroidchart

我在我的应用中使用MPAndroidChart。我想使用yAxis上的值和xAxis上的日期来绘制图表。我在MPAndroidChart API中找不到任何日期时间轴。有没有办法使用日期绘制xAxis?我有价值来反对日期。我想在xAxis上显示(ddMMM-yy)格式的日期和yAxis上的值。任何人都可以通过我的样本链接吗?

示例数据:

Date(xAxis) | Value(yAxis)
------------|-------------
01/01/2001  |  966.78
01/02/2001  |  666.78
01/03/2001  |  966.78
01/04/2001  |  966.78
01/05/2001  |  966.78
01/06/2001  |  966.78
01/07/2001  |  966.78

3 个答案:

答案 0 :(得分:1)

这是最古老的增强功能之一。不幸的是,MPAndroid还不支持它。 资源: https://github.com/PhilJay/MPAndroidChart/issues/12 https://github.com/PhilJay/MPAndroidChart/issues/133

答案 1 :(得分:0)

我认为您可以根据日期调整Xaxis数组并将其解析为图表

           if (mRecordDate.equals(mCurrentDate)) {
                        float weightVal = 0.0f, bmiValue = 0.0f;
                        try {
                            weightVal = (float) (profileWeightInfo.getWeight());
                        } catch (Exception e) {
                            Log.e("Error" + "Parsing weightVal Entry");
                        }
                        try {
                            bmiValue = (float) (profileWeightInfo.getBmi());
                        } catch (Exception e) {
                            Log.e("Error" + "Parsing diaVal Entry");
                        }
                        valuesWeights.add(new Entry(weightVal, counter));
                        valueBMI.add(new Entry(bmiValue, counter));
                        xVals.add(mRecordDate);

                    }
                }
                if (xVals.indexOf(mCurrentDate) < 0) {
                    valuesWeights.add(new Entry(0, counter));
                    valueBMI.add(new Entry(0, counter));
                    xVals.add(mCurrentDate);
                }
                counter++;

谢谢

答案 2 :(得分:0)

我知道已经晚了,但是对某人可能会有所帮助。

您可以将日期存储在数组中,然后可以使用图表的setValueFormatter属性将其显示在图表的x轴上。 在顶部声明dev数组。 final String dev1[] = new String[100];

然后在图表中显示

   final JSONObject object = jsonArray.getJSONObject(i);

   dev1[i] = object.getString("real_time");
   barEntries.add(new BarEntry(i, Float.parseFloat(value)));
   final BarDataSet barDataSetgen = new BarDataSet(barEntries, " ");

   XAxis bottomAxis = mcvbarchart.getXAxis();

   bottomAxis.setValueFormatter(new IndexAxisValueFormatter(dev1));   /*for x axis values*/
   bottomAxis.setLabelCount(barEntries.size());
   bottomAxis.setPosition(XAxis.XAxisPosition.BOTTOM);