我正在使用带有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();
答案 0 :(得分:1)
public void renderGridLines(Canvas c)
中的修改方法XAxisRenderer.java
。将您想要的值放入float[] positions
。
position[i]
是x值,position[i+1]
是y值
Make positions
是相同的数据集数组。参考摘要绘制图表的值
LineData lineData = mChart.getLineData();
for (ILineDataSet set : lineData.getDataSets()) {
if (set.isVisible())
drawDataSet(c, set);
}