MPChart折线图属性

[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<>();
  • 以上每个方法都亲自测试过了,调成理想的样子还需要自己修改参数

猜你喜欢

转载自blog.csdn.net/baidu_25797177/article/details/78424519
今日推荐