# SmartChart **Repository Path**: archermind-ti/smartchart ## Basic Information - **Project Name**: SmartChart - **Description**: 图表框架,支持图表N配置,支持缩放,旋转手势。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-06-04 - **Last Updated**: 2022-01-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SmartChart SmartChart是一个图表框架,支持线性图(折线,曲线,散点)柱状图、面积图、饼图、3D柱状图、雷达图、风向玫瑰图,支持图表多样化配置。支持轴方向,双轴,图示,水平线,十字轴,MarkView自定义,空白,标题,网格等,支持丰富的样式,包括字体样式(字体大小,颜色),图形样式(正方形,长方形,圆形),线(大小,颜色,DashPathEffect),增加了图表移动和缩放功能以及动画。 #### 功能说明 - 支持线性图(折线,曲线,散点) - 支持柱状图 - 支持面积图 - 支持饼图 - 支持3D柱状图 - 支持雷达图 - 支持风向玫瑰图 #### 功能演示 ![](img/rotate.gif) ![](img/linechart.gif) ![](img/areachart.gif) ![](img/barchart.gif) ![](img/3dbarchart.gif) ![](img/piechart.gif) ![](img/3dpiechart.gif) ![](img/radarchart.gif) ![](img/rosechart.gif) ![](img/barlinechart.gif) ![](img/customlinechart2.gif) ![](img/scalechartlist.gif) ![](img/scatterchart.gif) #### 安装教程 ``` dependencies { implementation 'com.gitee.archermind-ti:SmartChart:1.0.2' } ``` #### 如何使用 ###### 1. 导入图表View ``` ``` ``` ``` ``` ``` ###### 2.曲线图 ```lineChartView.setLineModel(LineChartView.CURVE_MODEL);``` ###### 3. 设置轴样式 ``` 很多方法有所调整,请参考demo ``` ``` VerticalAxis verticalAxis = lineChartView.getLeftVerticalAxis(); HorizontalAxis horizontalAxis= lineChartView.getHorizontalAxis(); VerticalAxis rightAxis = lineChartView.getRightVerticalAxis(); //是否从0开始 rightAxis.setStartZero(false); //设置最大值 rightAxis.setMaxValue(200); //设置最小值 rightAxis.setMinValue(-50); //设置竖轴方向 verticalAxis.setAxisDirection(IAxis.AxisDirection.LEFT); //设置网格 verticalAxis.setDrawGrid(true); //设置横轴方向 horizontalAxis.setAxisDirection(IAxis.AxisDirection.BOTTOM); //设置是否绘制网格 horizontalAxis.setDrawGrid(true); //设置线条样式 verticalAxis.getLineStyle().setWidth(mContext,1); DashPathEffect effects = new DashPathEffect(new float[] { 1, 2, 4, 8}, 1); //设置网格样式 verticalAxis.getGridStyle().setWidth(mContext,1).setColor(res.getColor(R.color.arc_text)).setEffect(effects); horizontalAxis.getGridStyle().setWidth(mContext,1).setColor(res.getColor(R.color.arc_text)).setEffect(effects); ``` ###### 4. 开启缩放 ``` chartView.setZoom(true); ``` ###### 5. 图表内容样式和功能 ``` LineStyle crossStyle = lineChartView.getProvider().getCrossStyle(); crossStyle.setWidth(mContext,1); crossStyle.setColor(res.getColor(R.color.arc21)); lineChartView.setZoom(true); //开启十字架 lineChartView.getProvider().setOpenCross(true); //开启MarkView lineChartView.getProvider().setOpenMark(true); //设置MarkView lineChartView.getProvider().setMarkView(new MsgMarkView(mContext)); //设置显示点 lineChartView.getProvider().setShowPoint(true); //设置显示点的样式 lineChartView.getProvider().getPointStyle().setShape(PointStyle.CIRCLE); ``` ###### 6. 图示 ``` //设置图示方向 lineChartView.getLegend().setLegendDirection(ILegend.BOTTOM); //设置图示样式 lineChartView.getLegend().getLegendStyle().setShape(PointStyle.RECT); //设置图示比例 lineChartView.getLegend().setLegendPercent(0.2f); ``` ###### 7.标题 ``` //设置显示标题 lineChartView.setShowChartName(true); //设置标题方向 lineChartView.getChartTitle().setTitleDirection(IChartTitle.BOTTOM); //设置标题比例 lineChartView.getChartTitle().setTitlePercent(0.2f); //设置标题样式 lineChartView.getChartTitle().getTextStyle().setTextColor(res.getColor(R.color.arc21)); ``` ###### 8.数据设置 ``` //Y轴数据 List chartYDataList = new ArrayList<>(); chartYDataList.add("华北"); chartYDataList.add("华中"); chartYDataList.add("华东"); chartYDataList.add("华西"); List ColumnDatas = new ArrayList<>(); ArrayList tempList1 = new ArrayList<>(); tempList1.add(26d); tempList1.add(-35d); tempList1.add(-40d); tempList1.add(10d); LineData columnData1 = new LineData("温度","℃", IAxis.AxisDirection.RIGHT,res.getColor(R.color.arc3),tempList1); ArrayList humidityList = new ArrayList<>(); humidityList.add(60d); humidityList.add(50d); humidityList.add(30d); humidityList.add(65d); LineData columnData2 = new LineData("湿度","RH%",res.getColor(R.color.arc2),humidityList); ColumnDatas.add(columnData1); ColumnDatas.add(columnData2); ChartData chartData2 = new ChartData<>("线型图",chartYDataList,ColumnDatas); //设置数据 lineChartView.setChartData(chartData); ``` ###### 9.动画 ``` //你可以使用默认动画 也可以设置Interpolator //startChartAnim(int duration, Interpolator interpolator) lineChartView.startChartAnim(400); ``` #### 版本迭代 - v1.0.0 ##### *License* SmartChart is released under the Apache 2.0 license. ``` Copyright 2017 BakerJ. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at following link. http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitat