2017-01-04 3 views
1

Я использую MPAndroidChart lib с v3.0.1. И у меня есть 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); 

каждые набор данных, как показано ниже: для (INT I = 0; i < = дни; i ++) { float usageTime = 0; entries.add (new Entry (i, usageTime)); } Данные LineDataSetSet = new LineDataSet (записи, p.getName()); // добавление // записи в набор данных dataSet.setDrawCircles (false); dataSet.setDrawValues ​​(false); dataSet.setMode (LineDataSet.Mode.CUBIC_BEZIER); dataSet.setLineWidth (2); dataSet.setAxisDependency (YAxis.AxisDependency.LEFT); dataSet.setColor (ColorTemplate.rgb (hexColor [colorPosition])); colorPosition + = 1; dataSets.add (dataSet);

показывают данные, как показано ниже:

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

+0

отправьте свой код – firegloves

ответ

1

Редактировать метод public void renderGridLines(Canvas c) в XAxisRenderer.java. Положите значение, которое вы хотите, в float[] positions. position[i] есть х-значение, position[i+1] является у-значение

Сделать positions такой же набор данных массива. Ссылка на диаграмму чертежа диаграммы

LineData lineData = mChart.getLineData(); 

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

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

Привет, Спасибо за предложение. Но мне немного любопытно, почему, если точки больше, чем сетка, это правильно? Я обновляю свой квест, чтобы добавить img. – AlanChien

+0

Увеличить размер массива позиционирования равное количество точек, поместить в него все значение рисования – cxphong

+0

изменить ответ !!!!! – cxphong

 Смежные вопросы

  • Нет связанных вопросов^_^