| |
| 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.setDescription(""); |
| |
| // 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); |
| } |
| } |
| } |