1. 程式人生 > >mpchart 如何對y軸取整及對y軸上對應顯示的資料取整數

mpchart 如何對y軸取整及對y軸上對應顯示的資料取整數

1 y軸取整 ,如下圖

y軸顯示小數

####解決方法

 YAxis leftAxis = mChart.getAxisLeft();
   leftAxis.setValueFormatter(new IAxisValueFormatter() {
            @Override
	        public String getFormattedValue(float value,    AxisBase axis) {
                return (int) value + "";
            }
        });

y 軸對應顯示的值取整

y 軸對應顯示的值為小數

解決辦法

data.setValueFormatter(new MonthlyIntegerYValueFormatter());

  LineDataSet set1;
        if (valueList != null && mChart != null) {
            mChart.getXAxis().setLabelCount(valueList.size(), true);
        }
        if (mChart.getData() != null &&
                mChart.getData().getDataSetCount() > 0) {
            set1 = (LineDataSet) mChart.getData().getDataSetByIndex(0);
            set1.setValues(valueList);
            mChart.getData().notifyDataChanged();
            mChart.notifyDataSetChanged();
        } else {
            // create a dataset and give it a type
            set1 = new LineDataSet(valueList, "DataSet 1");
            set1.setMode(LineDataSet.Mode.LINEAR);
            set1.setAxisDependency(YAxis.AxisDependency.LEFT);
            set1.setColor(chartColor);
            set1.setDrawValues(true);
            set1.setDrawCircleHole(false);
            set1.setDrawCircles(true);
            set1.setCircleColor(chartColor);
            set1.setValueTextSize(9f);
            set1.setDrawFilled(false);
            set1.setCircleRadius(4f);
            set1.setLineWidth(3f);
            set1.setFillAlpha(255);
//            if (Utils.getSDKInt() >= 18) {
//                // fill drawable only supported on api level 18 and above
//                Drawable drawable = ContextCompat.getDrawable(getActivity(), R.drawable.fade_blue);
//                set1.setFillDrawable(drawable);
//            } else {
//                set1.setFillColor(getResources().getColor(R.color.color_main_blue));
//            }
            set1.setHighLightColor(Color.TRANSPARENT);//設定高亮色

            ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
            dataSets.add(set1); // add the datasets
            // create a data object with the datasets
            LineData data = new LineData(dataSets);
            //此為y軸數值取整關鍵步驟
            data.setValueFormatter(new MonthlyIntegerYValueFormatter());
            // set data
            mChart.setData(data);
        }

MonthlyIntegerYValueFormatter 原始碼


public class MonthlyIntegerYValueFormatter implements IValueFormatter {
    @Override
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) {
        return (int) (value) + "";
    }
}

以上就是mpchart作圖中遇到的坑,希望大家有用。