package com.xxmassdeveloper.mpchartexample; import android.graphics.Color; import android.os.Bundle; import android.view.WindowManager; import com.github.mikephil.charting.charts.LineChart; import com.github.mikephil.charting.components.Legend; import com.github.mikephil.charting.components.XAxis; import com.github.mikephil.charting.components.YAxis; import com.github.mikephil.charting.data.Entry; import com.github.mikephil.charting.data.LineData; import com.github.mikephil.charting.data.LineDataSet; import com.github.mikephil.charting.formatter.IFillFormatter; import com.github.mikephil.charting.interfaces.dataprovider.LineDataProvider; import com.github.mikephil.charting.interfaces.datasets.ILineDataSet; import com.xxmassdeveloper.mpchartexample.notimportant.DemoBase; import java.util.ArrayList; public class FilledLineActivity extends DemoBase { private LineChart mChart; private int mFillColor = Color.argb(150, 51, 181, 229); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_linechart_noseekbar); mChart = (LineChart) findViewById(R.id.chart1); mChart.setBackgroundColor(Color.WHITE); mChart.setGridBackgroundColor(mFillColor); mChart.setDrawGridBackground(true); mChart.setDrawBorders(true); // no description text mChart.getDescription().setEnabled(false); // if disabled, scaling can be done on x- and y-axis separately mChart.setPinchZoom(false); Legend l = mChart.getLegend(); l.setEnabled(false); XAxis xAxis = mChart.getXAxis(); xAxis.setEnabled(false); YAxis leftAxis = mChart.getAxisLeft(); leftAxis.setAxisMaximum(900f); leftAxis.setAxisMinimum(-250f); leftAxis.setDrawAxisLine(false); leftAxis.setDrawZeroLine(false); leftAxis.setDrawGridLines(false); mChart.getAxisRight().setEnabled(false); // add data setData(100, 60); mChart.invalidate(); } private void setData(int count, float range) { ArrayList<Entry> yVals1 = new ArrayList<Entry>(); for (int i = 0; i < count; i++) { float val = (float) (Math.random() * range) + 50;// + (float) // ((mult * // 0.1) / 10); yVals1.add(new Entry(i, val)); } ArrayList<Entry> yVals2 = new ArrayList<Entry>(); for (int i = 0; i < count; i++) { float val = (float) (Math.random() * range) + 450;// + (float) // ((mult * // 0.1) / 10); yVals2.add(new Entry(i, val)); } LineDataSet set1, set2; if (mChart.getData() != null && mChart.getData().getDataSetCount() > 0) { set1 = (LineDataSet)mChart.getData().getDataSetByIndex(0); set2 = (LineDataSet)mChart.getData().getDataSetByIndex(1); set1.setValues(yVals1); set2.setValues(yVals2); mChart.getData().notifyDataChanged(); mChart.notifyDataSetChanged(); } else { // create a dataset and give it a type set1 = new LineDataSet(yVals1, "DataSet 1"); set1.setAxisDependency(YAxis.AxisDependency.LEFT); set1.setColor(Color.rgb(255, 241, 46)); set1.setDrawCircles(false); set1.setLineWidth(2f); set1.setCircleRadius(3f); set1.setFillAlpha(255); set1.setDrawFilled(true); set1.setFillColor(Color.WHITE); set1.setHighLightColor(Color.rgb(244, 117, 117)); set1.setDrawCircleHole(false); set1.setFillFormatter(new IFillFormatter() { @Override public float getFillLinePosition(ILineDataSet dataSet, LineDataProvider dataProvider) { return mChart.getAxisLeft().getAxisMinimum(); } }); // create a dataset and give it a type set2 = new LineDataSet(yVals2, "DataSet 2"); set2.setAxisDependency(YAxis.AxisDependency.LEFT); set2.setColor(Color.rgb(255, 241, 46)); set2.setDrawCircles(false); set2.setLineWidth(2f); set2.setCircleRadius(3f); set2.setFillAlpha(255); set2.setDrawFilled(true); set2.setFillColor(Color.WHITE); set2.setDrawCircleHole(false); set2.setHighLightColor(Color.rgb(244, 117, 117)); set2.setFillFormatter(new IFillFormatter() { @Override public float getFillLinePosition(ILineDataSet dataSet, LineDataProvider dataProvider) { return mChart.getAxisLeft().getAxisMaximum(); } }); ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>(); dataSets.add(set1); // add the datasets dataSets.add(set2); // create a data object with the datasets LineData data = new LineData(dataSets); data.setDrawValues(false); // set data mChart.setData(data); } } }