2015-09-18 2 views
1

Я использую MPChart для рисования линейного графика.Проблема с Android MPChart с печатью оси X и Y

Ниже приведен код, который я использовал для рисования диаграммы. График отлично работает. Единственная проблема, которая у меня возникает, - мне нужно, чтобы ось x и y напечатала (i.e) L-форму слева и внизу графика. Я хочу, чтобы значения X (которые были переданы в LineData) напечатаны в нижней части графика (по оси x), и я хочу установить минимальное и максимальное значение для оси y, и график должен быть скорректирован на основе этого минимума и максимальное значение.

Если я разорву 1-й части и передаю правду/удалю часть 1-й линии. Граф становится неверным. Кто-то, пожалуйста, помогите мне.

Благодаря

heartXVals является ArrayList, содержащих даты соответствующих значений частоты сердечных сокращений в данном heartYVals Входа.

heartDataSet = LineDataSet(heartYVals,"") 

     heartDataSet!!.setLineWidth(1.75f) 
     heartDataSet!!.setCircleSize(3f); 
     heartDataSet!!.setColor(Color.WHITE); 
     heartDataSet!!.setCircleColor(Color.WHITE); 
     heartDataSet!!.setHighLightColor(Color.WHITE); 
     heartDataSet!!.setDrawValues(false); 

     val dataSets:ArrayList<LineDataSet> = ArrayList(); 
     dataSets.add(heartDataSet!!); 

     val data:LineData = LineData(heartXVals,dataSets) 

     val lineChart:LineChart = view.findViewById(R.id.heartChart) as LineChart 

     lineChart.setDescription("") 
     lineChart.setNoDataTextDescription("You need to provide data for the chart.") 
     lineChart.setDrawGridBackground(false) 
     lineChart.setTouchEnabled(false) 
     lineChart.setDragEnabled(false) 
     lineChart.setScaleEnabled(true) 

     // if disabled, scaling can be done on x- and y-axis separately 
     lineChart.setPinchZoom(false) 

     //lineChart.setBackgroundColor(color) 

     // set custom chart offsets (automatic offset calculation is hereby disabled) 
     lineChart.setViewPortOffsets(10f, 0f, 10f, 0f) 


     // add data 
     lineChart.setData(data) 

     // get the legend (only possible after setting data) 
     val l = lineChart.getLegend() 
     l.setEnabled(false) 

     lineChart.getAxisLeft().setEnabled(false) -- Line 2 

     /* val leftAxis:YAxis = lineChart.getAxisLeft(); ---Line 1 
     leftAxis.removeAllLimitLines() 
     leftAxis.setAxisMaxValue(220f); 
     leftAxis.setAxisMinValue(40f); 
     leftAxis.setStartAtZero(false); 
     leftAxis.enableGridDashedLine(0f, 0f, 0f);*/ 


     lineChart.getAxisRight().setEnabled(false) 

     lineChart.getXAxis().setEnabled(false) 
     //lineChart.getY.setEnabled(true) 

     // animate calls invalidate()... 
     lineChart.animateX(2500) 

     lineChart.invalidate() 

ответ

0

Добавить ниже линии

XAxis xAxis = lineChart.getXAxis(); 
    xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); // to set xAxis in Bottom 

    YAxis leftAxis = lineChart.getAxisLeft(); 
    leftAxis.removeAllLimitLines(); 
    leftAxis.setAxisMaxValue(220f); // to set maximum yAxis 
    leftAxis.setAxisMinValue(0f); // to set minimum yAxis 
    leftAxis.setStartAtZero(false); 
    leftAxis.enableGridDashedLine(10f, 10f, 0f); 

    leftAxis.setDrawLimitLinesBehindData(true); 

    lineChart.getAxisRight().setEnabled(false); 

    lineChart.animateX(2500, Easing.EasingOption.EaseInOutQuart); 

enter image description here

3
// - X Axis 
XAxis xAxis = mChart.getXAxis(); 
xAxis.setTypeface(tf); 
xAxis.setTextSize(12f); 
xAxis.setPosition(XAxisPosition.BOTTOM); 
xAxis.setTextColor(ColorTemplate.getHoloBlue()); 
xAxis.setEnabled(true); 
xAxis.disableGridDashedLine(); 
xAxis.setSpaceBetweenLabels(5); 
xAxis.setDrawGridLines(false); 
xAxis.setAvoidFirstLastClipping(true); 

// - Y Axis 
YAxis leftAxis = mChart.getAxisLeft(); 
leftAxis.removeAllLimitLines(); 
leftAxis.setTypeface(tf); 
leftAxis.setPosition(YAxisLabelPosition.OUTSIDE_CHART); 
leftAxis.setTextColor(ColorTemplate.getHoloBlue()); 
leftAxis.setAxisMaxValue(1000f); 
leftAxis.setAxisMinValue(0f); // to set minimum yAxis 
leftAxis.setStartAtZero(false); 
leftAxis.enableGridDashedLine(10f, 10f, 0f); 
leftAxis.setDrawLimitLinesBehindData(true); 
leftAxis.setDrawGridLines(true); 
mChart.getAxisRight().setEnabled(false); 


//----------------- 
xAxis.setPosition(XAxisPosition.BOTTOM); --- x Axis 
leftAxis.setPosition(YAxisLabelPosition.OUTSIDE_CHART); --- x Axis 
Смежные вопросы