ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MPAndroidChart中LineChart折线图详细用法(一)

2022-07-31 01:01:47  阅读:142  来源: 互联网

标签:MPAndroidChart LineChart xAxis set values 设置 new 折线图 mLineChart


先看一下具体的图表效果

 

没错这图表就是通过 MPAndroidChart 的 LineChart直接生成的。

直接欣赏 Java 源码吧 !

public class LineChartActivity extends AppCompatActivity {

    private LineChart mLineChart;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.linechart_activity);

        mLineChart = (LineChart) findViewById(R.id.linechart);

        //图表设置
        mLineChart.setNoDataText("暂无数据");
        mLineChart.setExtraOffsets(0,0,0,10); //设置图表距离上下左右的距离
        mLineChart.setDrawGridBackground(false);
        mLineChart.setScaleEnabled(false);


        mLineChart.getAxisRight().setEnabled(false); //隐藏右侧Y轴
        //mLineChart.getAxisLeft().setEnabled(false); //隐藏左侧的Y轴
        //数据轴设置部分

        XAxis xAxis = mLineChart.getXAxis(); //获取表格的X轴
        xAxis.setEnabled(true); //设置轴启用或禁用 如果禁用以下的设置全部不生效
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); //设置x轴的显示位置

        //设置轴线属性
        xAxis.setDrawAxisLine(true); //是否绘制轴线
        xAxis.setAxisLineColor(Color.BLACK); //设置x轴线颜色
        xAxis.setAxisLineWidth(1f);

        //设置标签属性
        xAxis.setDrawLabels(true);//是否绘制轴线上的标签
        //xAxis.setTextColor(12); // 设置轴标签字体大小
        xAxis.setTextColor(Color.BLUE);//设置轴标签的字体颜色
//      xAxis.setAxisMinimum(0); //设置x轴的最小值
//      xAxis.setAxisMaximum(100); //设置x轴的最大值
//      xAxis.setLabelCount(10); //设置x轴显示标签数量

        xAxis.setAvoidFirstLastClipping(true); //图表将避免第一个和最后一个标签条目被减掉在图表或屏幕的边缘
        xAxis.setLabelRotationAngle(-30f); //设置x轴标签的旋转角度

        //设置网格线
        //xAxis.setDrawGridLines(false); //设置x轴上每个点对应的线
        //xAxis.setGridLineWidth(1f); //设置竖线宽度
        //xAxis.setGridColor(Color.RED);

        //设置竖线的显示样式为虚线(lineLength控制虚线段的长度,spaceLength控制线之间的空间)
        //xAxis.enableAxisLineDashedLine(1f,1f,0);
        //xAxis.setGranularity(1f);
        //xAxis.setValueFormatter(null);


        //mLineChart.getXAxis().setEnabled(false); //隐藏X轴

        ArrayList<Entry> values = new ArrayList<>();
        values.add(new Entry(10,50));
        values.add(new Entry(20,66));
        values.add(new Entry(30,30));
        values.add(new Entry(40,80));
        values.add(new Entry(50,50));
        values.add(new Entry(60,70));

        setData(values);

    }

    public void setData(ArrayList<Entry> values){

        LineDataSet set = new LineDataSet(values,"测试折线图");

        set.setLineWidth(1.5f); //设置折线的宽度
        set.setValueTextSize(10f); //设置显示值的文字大小
        set.setColor(Color.RED); //设置折线颜色
        set.setCircleColor(Color.RED); //设置焦点圆心的颜色
        set.setCircleRadius(3f); //设置焦点圆心的大小
        set.setMode(LineDataSet.Mode.HORIZONTAL_BEZIER); //设置成曲线
        //set.setMode(LineDataSet.Mode.CUBIC_BEZIER);
        //set.setMode(LineDataSet.Mode.STEPPED);
        //set.setAxisDependency(YAxis.AxisDependency.LEFT);

        //设置点击交叉线
        set.setHighlightEnabled(true); //是否禁用点击高亮线
        set.setHighLightColor(Color.BLUE); //设置点击交点后显示交高亮线的颜色
        set.enableDashedHighlightLine(10f,5f,0); //点击后的高亮线的显示样式
        set.setHighlightLineWidth(1f); //设置点击交点后显示高亮的线宽

        //设置曲线下面的填充颜色
        set.setDrawFilled(true);
        //set.setFillAlpha(0);
        set.setFillColor(Color.BLUE);


        ArrayList<ILineDataSet> dataSet = new ArrayList<>();
        dataSet.add(set);

        LineData data = new LineData(dataSet);
        mLineChart.setData(data);
        mLineChart.invalidate();

    }
    
}

有些代码是注释掉了,但这个不影响上面图片的生成效果。

如果需要测试更多的效果,可以通过取消上面注释的查看。

 

标签:MPAndroidChart,LineChart,xAxis,set,values,设置,new,折线图,mLineChart
来源: https://www.cnblogs.com/zsdblog/p/16536272.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有