如何在每个网格线上创建线图值

时间:2017-01-04 08:59:39

标签: android mpandroidchart

我正在使用带有v3.0.1的MPAndroidChart lib。 我每周都有7个值在LineChart上显示下面的图像。

如何在xAxis网格线上设置每个值?

IAxisValueFormatter中的每个标签值都是:

0.0周四 1.1666666周五 2.3333333星期六 3.5孙孙 4.6666665星期一 5.833333星期二 6.9999995周三

我的图表设置如下:

chart.setDrawGridBackground(true);
chart.setPinchZoom(false);
chart.setDescription(null);
chart.setTouchEnabled(false);
chart.getAxisRight().setEnabled(false);
leftAxis = chart.getAxisLeft();
leftAxis.setDrawGridLines(true);
leftAxis.setAxisMinimum(0);
xaxis = chart.getXAxis();
xaxis.setCenterAxisLabels(false);
xaxis.setDrawGridLines(true);
xaxis.setAxisMinimum(0);
xaxis.setPosition(XAxis.XAxisPosition.BOTTOM);
Legend legend = chart.getLegend();
legend.setEnabled(true);
legend.setForm(Legend.LegendForm.LINE);

每个数据集如下:     for(int i = 0; i< = days; i ++){         float usageTime = 0;         entries.add(new Entry(i,usageTime));     }     LineDataSet dataSet = new LineDataSet(entries,p.getName()); //添加     //数据集的条目     dataSet.setDrawCircles(假);     dataSet.setDrawValues(假);     dataSet.setMode(LineDataSet.Mode.CUBIC_BEZIER);     dataSet.setLineWidth(2);     dataSet.setAxisDependency(YAxis.AxisDependency.LEFT);     dataSet.setColor(ColorTemplate.rgb(hexColor [colorPosition]));     colorPosition + = 1;     dataSets.add(数据集);

显示如下数据:

LineData lineData = new LineData(dataSets);
chart.setData(lineData);
chart.animateX(500);
chart.invalidate();

enter image description here

enter image description here

但是如果我使用的点多于网格线,那就是我除了之外的东西。 enter image description here

1 个答案:

答案 0 :(得分:1)

public void renderGridLines(Canvas c)中的修改方法XAxisRenderer.java。将您想要的值放入float[] positionsposition[i]是x值,position[i+1]是y值

Make positions是相同的数据集数组。参考摘要绘制图表的值

LineData lineData = mChart.getLineData();

for (ILineDataSet set : lineData.getDataSets()) {

    if (set.isVisible())
        drawDataSet(c, set);
}