• swift 画图 Charts的基本使用


    下面的这些代码呢是在oc工程里里使用的 其实和在swift中使用没什么大的差别 属性都一样的

    //创建饼状图
        self.pieChartView = [[PieChartView alloc] initWithFrame:CGRectMake(20, 80, f_Device_w-40, 300)];
        [self.view addSubview:self.pieChartView];
        
        //基本样式
        [self.pieChartView setExtraOffsetsWithLeft:30 top:0 right:30 bottom:0];//饼状图距离边缘的间隙
        self.pieChartView.usePercentValuesEnabled = YES;//是否根据所提供的数据, 将显示数据转换为百分比格式
        self.pieChartView.dragDecelerationEnabled = YES;//拖拽饼状图后是否有惯性效果
        self.pieChartView.drawSliceTextEnabled = YES;//是否显示区块文本
        //空心饼状图样式
        self.pieChartView.drawHoleEnabled = YES;//饼状图是否是空心
        self.pieChartView.holeRadiusPercent = 0.5;//空心半径占比
        self.pieChartView.holeColor = [UIColor clearColor];//空心颜色
        self.pieChartView.transparentCircleRadiusPercent = 0.52;//半透明空心半径占比
        self.pieChartView.transparentCircleColor = [UIColor colorWithRed:210/255.0 green:145/255.0 blue:165/255.0 alpha:0.3];//半透明空心的颜色
        //实心饼状图样式
        //    self.pieChartView.drawHoleEnabled = NO;
        //饼状图中间描述
        if (self.pieChartView.isDrawHoleEnabled == YES) {
            self.pieChartView.drawCenterTextEnabled = YES;//是否显示中间文字
            //普通文本
            //        self.pieChartView.centerText = @"饼状图";//中间文字
            //富文本
            NSMutableAttributedString *centerText = [[NSMutableAttributedString alloc] initWithString:@"饼状图"];
            [centerText setAttributes:@{NSFontAttributeName: [UIFont boldSystemFontOfSize:16],NSForegroundColorAttributeName: [UIColor orangeColor]} range:NSMakeRange(0, centerText.length)];
            self.pieChartView.centerAttributedText = centerText;
        }
        //饼状图描述
        self.pieChartView.descriptionText = @"饼状图示例";
        self.pieChartView.descriptionFont = [UIFont systemFontOfSize:10];
        self.pieChartView.descriptionTextColor = [UIColor grayColor];
        //饼状图图例
        self.pieChartView.legend.maxSizePercent = 1;//图例在饼状图中的大小占比, 这会影响图例的宽高
        self.pieChartView.legend.formToTextSpace = 5;//文本间隔
        self.pieChartView.legend.font = [UIFont systemFontOfSize:10];//字体大小
        self.pieChartView.legend.textColor = [UIColor grayColor];//字体颜色
        self.pieChartView.legend.position = ChartLegendPositionBelowChartCenter;//图例在饼状图中的位置
        self.pieChartView.legend.form = ChartLegendFormCircle;//图示样式: 方形、线条、圆形
        self.pieChartView.legend.formSize = 12;//图示大小
        //为饼状图提供数据
        self.pieCData = [self setData];
        self.pieChartView.data = self.pieCData;
        //设置动画效果
        [self.pieChartView animateWithXAxisDuration:1.0f easingOption:ChartEasingOptionEaseOutExpo];

    雷达图:

    //创建雷达图对象
        self.radarChartView = [[RadarChartView alloc] initWithFrame:CGRectMake(20, 80, f_Device_w-40, 300)];
        [self.view addSubview:self.radarChartView];
        self.radarChartView.delegate = self;
        self.radarChartView.descriptionText = @"";//描述
        self.radarChartView.rotationEnabled = YES;//是否允许转动
        self.radarChartView.highlightPerTapEnabled = YES;//是否能被选中
        
        //雷达图线条样式
        self.radarChartView.webLineWidth = 0.5;//主干线线宽
        self.radarChartView.webColor = [self colorWithHexString:@"#c2ccd0"];//主干线线宽
        self.radarChartView.innerWebLineWidth = 0.375;//边线宽度
        self.radarChartView.innerWebColor = [self colorWithHexString:@"#c2ccd0"];//边线颜色
        self.radarChartView.webAlpha = 1;//透明度
        
        //设置 xAxi
        ChartXAxis *xAxis = self.radarChartView.xAxis;
        xAxis.labelFont = [UIFont systemFontOfSize:15];//字体
        xAxis.labelTextColor = [self colorWithHexString:@"#057748"];//颜色
        
        //设置 yAxis
        ChartYAxis *yAxis = self.radarChartView.yAxis;
        yAxis.axisMinValue = 0.0;//最小值
        yAxis.axisMaxValue = 150.0;//最大值
        yAxis.drawLabelsEnabled = NO;//是否显示 label
        yAxis.labelCount = 6;// label 个数
        yAxis.labelFont = [UIFont systemFontOfSize:9];// label 字体
        yAxis.labelTextColor = [UIColor lightGrayColor];// label 颜色
        
        //为雷达图提供数据
        self.radarCData = [self setData];
        self.radarChartView.data = self.radarCData;
        [self.radarChartView renderer];
        
        //设置动画
        [self.radarChartView animateWithYAxisDuration:0.1f];

    柱状图:

    //添加barChartView
        self.barChartView = [[BarChartView alloc] initWithFrame:CGRectMake(20, 80, f_Device_w-40, 300)];
        self.barChartView.delegate = self;//设置代理
        [self.view addSubview:self.barChartView];
        
        //基本样式
        self.barChartView.backgroundColor = [UIColor colorWithRed:230/255.0f green:253/255.0f blue:253/255.0f alpha:1];
        self.barChartView.noDataText = @"暂无数据";//没有数据时的文字提示
        self.barChartView.drawValueAboveBarEnabled = YES;//数值显示在柱形的上面还是下面
        self.barChartView.drawHighlightArrowEnabled = NO;//点击柱形图是否显示箭头
        self.barChartView.drawBarShadowEnabled = NO;//是否绘制柱形的阴影背景
        
        //交互设置
        self.barChartView.scaleYEnabled = NO;//取消Y轴缩放
        self.barChartView.doubleTapToZoomEnabled = NO;//取消双击缩放
        self.barChartView.dragEnabled = YES;//启用拖拽图表
        self.barChartView.dragDecelerationEnabled = YES;//拖拽后是否有惯性效果
        self.barChartView.dragDecelerationFrictionCoef = 0.9;//拖拽后惯性效果的摩擦系数(0~1),数值越小,惯性越不明显
        
        //X轴样式
        ChartXAxis *xAxis = self.barChartView.xAxis;
        xAxis.axisLineWidth = 1;//设置X轴线宽
        xAxis.labelPosition = XAxisLabelPositionBottom;//X轴的显示位置,默认是显示在上面的
        xAxis.drawGridLinesEnabled = NO;//不绘制网格线
        xAxis.spaceBetweenLabels = 4;//设置label间隔,若设置为1,则如果能全部显示,则每个柱形下面都会显示label
        xAxis.labelTextColor = [UIColor brownColor];//label文字颜色
        
        //右边Y轴样式
        self.barChartView.rightAxis.enabled = NO;//不绘制右边轴
        
        //左边Y轴样式
        ChartYAxis *leftAxis = self.barChartView.leftAxis;//获取左边Y轴
        leftAxis.labelCount = 5;//Y轴label数量,数值不一定,如果forceLabelsEnabled等于YES, 则强制绘制制定数量的label, 但是可能不平均
        leftAxis.forceLabelsEnabled = NO;//不强制绘制制定数量的label
        leftAxis.showOnlyMinMaxEnabled = NO;//是否只显示最大值和最小值
        leftAxis.axisMinValue = 0;//设置Y轴的最小值
        leftAxis.startAtZeroEnabled = YES;//从0开始绘制
        leftAxis.axisMaxValue = 105;//设置Y轴的最大值
        leftAxis.inverted = NO;//是否将Y轴进行上下翻转
        leftAxis.axisLineWidth = 0.5;//Y轴线宽
        leftAxis.axisLineColor = [UIColor blackColor];//Y轴颜色
        leftAxis.valueFormatter = [[NSNumberFormatter alloc] init];//自定义格式
        leftAxis.valueFormatter.positiveSuffix = @" $";//数字后缀单位
        leftAxis.labelPosition = YAxisLabelPositionOutsideChart;//label位置
        leftAxis.labelTextColor = [UIColor brownColor];//文字颜色
        leftAxis.labelFont = [UIFont systemFontOfSize:10.0f];//文字字体
        //网格线样式
        leftAxis.gridLineDashLengths = @[@3.0f, @3.0f];//设置虚线样式的网格线
        leftAxis.gridColor = [UIColor colorWithRed:200/255.0f green:200/255.0f blue:200/255.0f alpha:1];//网格线颜色
        leftAxis.gridAntialiasEnabled = YES;//开启抗锯齿
        //添加限制线
        ChartLimitLine *limitLine = [[ChartLimitLine alloc] initWithLimit:80 label:@"限制线"];
        limitLine.lineWidth = 2;
        limitLine.lineColor = [UIColor greenColor];
        limitLine.lineDashLengths = @[@5.0f, @5.0f];//虚线样式
        limitLine.labelPosition = ChartLimitLabelPositionRightTop;//位置
        [leftAxis addLimitLine:limitLine];//添加到Y轴上
        leftAxis.drawLimitLinesBehindDataEnabled = YES;//设置限制线绘制在柱形图的后面
        
        //图例说明样式
        self.barChartView.legend.enabled = NO;//不显示图例说明
        //    self.barChartView.legend.position = ChartLegendPositionBelowChartLeft;//位置
        
        //右下角的description文字样式
        self.barChartView.descriptionText = @"";//不显示,就设为空字符串即可
        //    self.barChartView.descriptionText = @"柱形图";
        
        self.barCData = [self setData];
        
        //为柱形图提供数据
        self.barChartView.data = self.barCData;
        
        //设置动画效果,可以设置X轴和Y轴的动画效果
        [self.barChartView animateWithYAxisDuration:1.0f];

    折线图:

    //添加折线视图LineChartView
        self.LineChartView = [[LineChartView alloc] initWithFrame:CGRectMake(20, 80, f_Device_w-40, 300)];
        self.LineChartView.delegate = self;//设置代理
        [self.view addSubview:self.LineChartView];
        
        //基本样式
        self.LineChartView.backgroundColor =  [UIColor colorWithRed:230/255.0f green:253/255.0f blue:253/255.0f alpha:1];
        self.LineChartView.noDataText = @"暂无数据";
        //交互样式
        self.LineChartView.scaleYEnabled = NO;//取消Y轴缩放
        self.LineChartView.doubleTapToZoomEnabled = NO;//取消双击缩放
        self.LineChartView.dragEnabled = YES;//启用拖拽图标
        self.LineChartView.dragDecelerationEnabled = YES;//拖拽后是否有惯性效果
        self.LineChartView.dragDecelerationFrictionCoef = 0.9;//拖拽后惯性效果的摩擦系数(0~1),数值越小,惯性越不明显
        //X轴样式
        ChartXAxis *xAxis = self.LineChartView.xAxis;
        xAxis.axisLineWidth = 1.0/[UIScreen mainScreen].scale;//设置X轴线宽
        xAxis.labelPosition = XAxisLabelPositionBottom;//X轴的显示位置,默认是显示在上面的
        xAxis.drawGridLinesEnabled = NO;//不绘制网格线
        xAxis.spaceBetweenLabels = 4;//设置label间隔
        xAxis.labelTextColor = [self colorWithHexString:@"#057748"];//label文字颜色
        //Y轴样式
        self.LineChartView.rightAxis.enabled = NO;//不绘制右边轴
        ChartYAxis *leftAxis = self.LineChartView.leftAxis;//获取左边Y轴
        leftAxis.labelCount = 5;//Y轴label数量,数值不一定,如果forceLabelsEnabled等于YES, 则强制绘制制定数量的label, 但是可能不平均
        leftAxis.forceLabelsEnabled = NO;//不强制绘制指定数量的label
        leftAxis.showOnlyMinMaxEnabled = NO;//是否只显示最大值和最小值
        leftAxis.axisMinValue = 0;//设置Y轴的最小值
        leftAxis.startAtZeroEnabled = YES;//从0开始绘制
        leftAxis.axisMaxValue = 105;//设置Y轴的最大值
        leftAxis.inverted = NO;//是否将Y轴进行上下翻转
        leftAxis.axisLineWidth = 1.0/[UIScreen mainScreen].scale;//Y轴线宽
        leftAxis.axisLineColor = [UIColor blackColor];//Y轴颜色
        leftAxis.valueFormatter = [[NSNumberFormatter alloc] init];//自定义格式
        leftAxis.valueFormatter.positiveSuffix = @" $";//数字后缀单位
        leftAxis.labelPosition = YAxisLabelPositionOutsideChart;//label位置
        leftAxis.labelTextColor = [self colorWithHexString:@"#057748"];//文字颜色
        leftAxis.labelFont = [UIFont systemFontOfSize:10.0f];//文字字体
        //网格线样式
        leftAxis.gridLineDashLengths = @[@3.0f, @3.0f];//设置虚线样式的网格线
        leftAxis.gridColor = [UIColor colorWithRed:200/255.0f green:200/255.0f blue:200/255.0f alpha:1];//网格线颜色
        leftAxis.gridAntialiasEnabled = YES;//开启抗锯齿
        //添加限制线
        ChartLimitLine *limitLine = [[ChartLimitLine alloc] initWithLimit:80 label:@"限制线"];
        limitLine.lineWidth = 2;
        limitLine.lineColor = [UIColor greenColor];
        limitLine.lineDashLengths = @[@5.0f, @5.0f];//虚线样式
        limitLine.labelPosition = ChartLimitLabelPositionRightTop;//位置
        limitLine.valueTextColor = [self colorWithHexString:@"#057748"];//label文字颜色
        limitLine.valueFont = [UIFont systemFontOfSize:12];//label字体
        [leftAxis addLimitLine:limitLine];//添加到Y轴上
        leftAxis.drawLimitLinesBehindDataEnabled = YES;//设置限制线绘制在折线图的后面
        //描述及图例样式
        [self.LineChartView setDescriptionText:@"折线图"];
        [self.LineChartView setDescriptionTextColor:[UIColor darkGrayColor]];
        self.LineChartView.legend.form = ChartLegendFormLine;
        self.LineChartView.legend.formSize = 30;
        self.LineChartView.legend.textColor = [UIColor darkGrayColor];
        self.lineCData = [self setData];
        self.LineChartView.data = self.lineCData;
        [self.LineChartView animateWithXAxisDuration:1.0f];

    界面效果:

  • 相关阅读:
    Python全栈开发记录_第七篇(模块_time_datetime_random_os_sys_hashlib_logging_configparser_re)
    Python全栈开发记录_第六篇(生成器和迭代器)
    Python全栈开发记录_第五篇(装饰器)
    Python全栈开发记录_第四篇(集合、函数等知识点)
    Python全栈开发记录_第三篇(linux(ubuntu)的操作)
    Python全栈开发记录_第二篇(文件操作及三级菜单栏增删改查)
    Python全栈开发记录_第一篇(循环练习及杂碎的知识点)
    NET控件Designer架构设计
    如何把Excel中的单元格等对象保存成图片
    “某某云词典” – 纠结的初体验
  • 原文地址:https://www.cnblogs.com/lwk151124/p/5840784.html
Copyright © 2020-2023  润新知