MPChart折线图属性

来源:互联网 发布:笨笨熊软件官网 编辑:程序博客网 时间:2024/06/06 08:26

[Android]MPChart折线图属性

@Author GQ 2017年11月02日

安卓中需要用到图表来显示一些数据,开源MPAndroidChart是Star最多的

,自然是首选,很多资料都没有详细的注释而且方法过时,每个属性只能自己来试.

都加了注释,先整理一个折线图的,其他图以后再整理

原文GitHub https://github.com/PhilJay/MPAndroidChart

官方效果图

AndroidStudio使用

 allprojects {        repositories {            ...            maven { url "https://jitpack.io" }        }    }
dependencies {            compile 'com.github.PhilJay:MPAndroidChart:v3.0.2'    }

XML布局文件

 <com.github.mikephil.charting.charts.LineChart        android:id="@+id/chart"        android:layout_width="match_parent"        android:layout_height="300dp"        android:layout_margin="16dp"        android:background="#ffffff"/>

Java代码

//图表chart = (LineChart) findViewById(R.id.chart);final String[] quarters = new String[]{"10月23日", "10月24日", "10月25日", "10月26日"};//自定义设置X轴的值为 => 日期IAxisValueFormatter formatter = new IAxisValueFormatter() {    @Override    public String getFormattedValue(float value, AxisBase axis) {        return quarters[(int) value];    }};//设置说明chart.setDescription(null);//设置图例关chart.getLegend().setEnabled(false);//设置显示范围chart.setVisibleXRangeMaximum(2);chart.setVisibleYRangeMinimum(10f, YAxis.AxisDependency.LEFT);//设置透明度chart.setAlpha(1.0f);//设置背景色chart.setBackgroundColor(Color.WHITE);//设置边框chart.setBorderColor(Color.rgb(0, 0, 0));chart.setGridBackgroundColor(R.color.colorPrimary);//设置触摸(关闭影响下面3个属性)chart.setTouchEnabled(false);//设置是否可以拖拽chart.setDragEnabled(true);//设置是否可以缩放chart.setScaleEnabled(true);//设置是否能扩大扩小chart.setPinchZoom(true);//获取X轴XAxis xl = chart.getXAxis();//启用X轴xl.setEnabled(true);//设置X轴避免图表或屏幕的边缘的第一个和最后一个轴中的标签条目被裁剪xl.setAvoidFirstLastClipping(true);//设置X轴底部显示xl.setPosition(XAxis.XAxisPosition.BOTTOM);//设置竖网格xl.setDrawGridLines(false);//设置X轴文字大小xl.setTextSize(10f);//设置X轴单位间隔xl.setGranularity(1f);//设置X轴值xl.setValueFormatter(formatter);//获取Y轴(左)YAxis yl = chart.getAxisLeft();//设置Y轴文字在外部显示yl.setPosition(YAxis.YAxisLabelPosition.OUTSIDE_CHART);//Y轴字体yl.setTextSize(10f);//设置Y轴最大值yl.setAxisMaximum(20f);//设置Y轴起始值yl.setAxisMinimum(0f);//获取Y轴(右) YAxis yl2 = chart.getAxisRight();//禁用右侧Y轴yl2.setEnabled(false);//数据ArrayList<Entry> entryList = new ArrayList<>();entryList.add(new Entry(0, 1));entryList.add(new Entry(1, 3));entryList.add(new Entry(2, 2));entryList.add(new Entry(3, 4));LineDataSet l1 = new LineDataSet(entryList, "红色");l1.setAxisDependency(YAxis.AxisDependency.LEFT);//设置包括的范围区域填充颜色l1.setDrawFilled(false);//设置线的宽度l1.setLineWidth(2f);//设置曲线的颜色l1.setColor(Color.rgb(244, 117, 117));//设置曲率,0.05f-1f  1为折线l1.setCubicIntensity(1f);//设置有圆点l1.setDrawCircles(true);//设置小圆点的大小l1.setCircleRadius(5f);//设置圆圈颜色l1.setCircleColor(Color.rgb(244, 117, 117));//填充圆圈内颜色l1.setCircleColorHole(Color.rgb(244, 117, 117));//设置不显示数值l1.setDrawValues(false);List<ILineDataSet> lineDataSetArrayList = new ArrayList<>();lineDataSetArrayList.add(l1);LineData lineData = new LineData(lineDataSetArrayList);chart.setData(lineData);//设置XY轴进入动画chart.animateXY(800, 800);//设置最小的缩放chart.setScaleMinima(1f, 1f);//刷新图表//chart.invalidate();List<Model> newData = new ArrayList<>();
  • 以上每个方法都亲自测试过了,调成理想的样子还需要自己修改参数
原创粉丝点击