PNChart用法

作者: HuLL乐乐 | 来源:发表于2016-09-02 17:18 被阅读5608次

    #define MAIN_WIDTH [[UIScreen mainScreen] bounds].size.width

    #define MAIN_HEIGHT [[UIScreen mainScreen] bounds].size.height

    //1.PNCircleChart圆环=================================

    //初始化圆环PNCircleChart最后一个初始化方法功能比较齐全

    //total总圆100单位

    //current占总圆的80单位

    //clockwise顺时针方向YES

    //shadow有阴影YES

    //shadowColor阴影颜色greenColor

    //displayCountingLabel是否显示计数标签YES

    //overrideLineWidth圆环的宽20像素

    PNCircleChart * circleChart = [[PNCircleChart alloc]initWithFrame:CGRectMake(0, 150, MAIN_WIDTH, 200) total:[NSNumber numberWithInt:100] current:[NSNumber numberWithInt:80] clockwise:YES shadow:YES shadowColor:[UIColor greenColor] displayCountingLabel:YES overrideLineWidth:[NSNumber numberWithInt:20]];

    //设置颜色

    [circleChart setStrokeColorGradientStart:[UIColor redColor]];

    //开始画圆

    [circleChart strokeChart];

    //背景颜色

    circleChart.backgroundColor = [UIColor yellowColor];

    //Add

    [self.view addSubview:circleChart];

    //效果如下图

    //2.PNLineChart折线图=================================

    PNLineChart *lineChart = [[PNLineChart alloc]initWithFrame:CGRectMake(0, 150, MAIN_WIDTH, 300)];

    //设置背景颜色

    lineChart.backgroundColor = [UIColor yellowColor];

    //设置坐标轴是否可见

    lineChart.showCoordinateAxis = YES;

    //设置是否显示网格线

    lineChart.showYGridLines = YES;

    //设置网格线颜色

    lineChart.yGridLinesColor = [UIColor grayColor];

    //设置X轴标签

    lineChart.xLabels = @[@"魅族",@"华为",@"中兴",@"小米",@"苹果",@"一加",@"乐视"];

    //设置坐标轴颜色

    lineChart.axisColor = [UIColor blueColor];

    //设置坐标轴宽度

    lineChart.axisWidth = 2.0;

    //Add

    [self.view addSubview:lineChart];

    //曲线数据1

    PNLineChartData *data1 = [[PNLineChartData alloc]init];

    //曲线颜色

    data1.color = PNRed;

    //曲线格式

    data1.inflexionPointStyle = PNLineChartPointStyleCircle;

    //设置数据(Y轴坐标根据数据的大小自动适应)

    NSArray *dataArray1 = @[@4,@8,@7,@4,@19,@6,@5];

    data1.itemCount = dataArray1.count;

    data1.getData = ^(NSUInteger index){

    CGFloat yValue = [dataArray1[index] floatValue];

    return [ PNLineChartDataItem dataItemWithY:yValue];

    };

    //曲线数据2

    PNLineChartData *data2 = [[PNLineChartData alloc]init];

    //曲线颜色

    data2.color = PNGreen;

    //曲线格式

    data2.inflexionPointStyle = PNLineChartPointStyleCircle;

    //设置数据(Y轴坐标根据数据的大小自动适应)

    NSArray *dataArray2 = @[@6,@15,@3,@12,@20,@16,@3];

    data2.itemCount = dataArray2.count;

    data2.getData = ^(NSUInteger index){

    CGFloat yValue = [dataArray2[index] floatValue];

    return [ PNLineChartDataItem dataItemWithY:yValue];

    };

    lineChart.chartData = @[data1,data2];

    //开始绘图

    [lineChart strokeChart];

    //数据标注名称

    data1.dataTitle = @"数据1标注名称";

    data2.dataTitle = @"数据2标注名称";

    //标注摆放样式

    lineChart.legendStyle = PNLegendItemStyleSerial;

    //标注字体

    lineChart.legendFont = [UIFont boldSystemFontOfSize:12.0f];

    //标注颜色

    lineChart.legendFontColor = [UIColor redColor];

    // 标示所在的View

    UIView *legend = [lineChart getLegendWithMaxWidth:MAIN_WIDTH];

    [legend setFrame:CGRectMake(0, 480, legend.frame.size.width, legend.frame.size.height)];

    legend.backgroundColor = [UIColor yellowColor];

    [self.view addSubview:legend];

    //效果图如下

    //3.PNBarChart柱状图=================================

    PNBarChart *barChart = [[PNBarChart alloc] initWithFrame:CGRectMake(0, 150, MAIN_WIDTH, 300)];

    barChart.backgroundColor = [UIColor yellowColor];

    //Y坐标label宽度(微调)

    barChart.yChartLabelWidth = 20.0;

    barChart.chartMarginLeft = 30.0;

    barChart.chartMarginRight = 10.0;

    barChart.chartMarginTop = 5.0;

    barChart.chartMarginBottom = 10.0;

    //X坐标刻度的上边距

    barChart.labelMarginTop = 2.0;

    //是否显示坐标轴

    barChart.showChartBorder = YES;

    [barChart setXLabels:@[@"魅族",@"华为",@"中兴",@"小米",@"苹果",@"乐视"]];

    [barChart setYValues:@[@20,@8,@5,@33,@16,@8]];

    //每个柱子的颜色

    [barChart setStrokeColors:@[PNGreen,PNRed,PNRed,PNRed,PNRed,PNRed]];

    //    barChart.strokeColor = [UIColor redColor];

    //是否立体效果

    barChart.isGradientShow = NO;

    //显示各条状图的数值

    barChart.isShowNumbers = YES;

    //开始绘图

    [barChart strokeChart];

    barChart.delegate = self;

    //Add

    [self.view addSubview:barChart];

    //效果图如下

    //4.PNPieChart圆饼图=================================

    //圆饼数据

    NSArray *items = @[[PNPieChartDataItem dataItemWithValue:30 color:PNRed],

    [PNPieChartDataItem dataItemWithValue:10 color:PNFreshGreen description:@"绿色"],

    [PNPieChartDataItem dataItemWithValue:60 color:PNBlue description:@"蓝色"],

    ];

    //PNPieChart初始化

    PNPieChart *pieChart = [[PNPieChart alloc] initWithFrame:CGRectMake(SCREEN_WIDTH /2 - 100, 150, 200, 200) items:items];

    pieChart.backgroundColor = [UIColor yellowColor];

    //扇形上字体颜色

    pieChart.descriptionTextColor = [UIColor whiteColor];

    pieChart.descriptionTextFont  = [UIFont fontWithName:@"Avenir-Medium" size:11.0];

    // 阴影颜色

    pieChart.descriptionTextShadowColor = [UIColor yellowColor];

    //显示实际数值(不显示比例数字)

    pieChart.showAbsoluteValues = YES;

    // 只显示数值不显示内容描述

    pieChart.showOnlyValues = NO;

    //开始绘图

    [pieChart strokeChart];

    //Add

    [self.view addSubview:pieChart];

    // 标注排放样式

    pieChart.legendStyle = PNLegendItemStyleStacked;

    pieChart.legendFont = [UIFont boldSystemFontOfSize:12.0f];

    UIView *legend = [pieChart getLegendWithMaxWidth:200];

    [legend setFrame:CGRectMake(130, 350, legend.frame.size.width, legend.frame.size.height)];

    [self.view addSubview:legend];

    //效果图如下

    //5.PNRadarChart无线电图=================================

    //View背景颜色

    self.view.backgroundColor = [UIColor yellowColor];

    NSArray *items = @[[PNRadarChartDataItem dataItemWithValue:6 description:@"语文"],

    [PNRadarChartDataItem dataItemWithValue:20 description:@"数学"],

    [PNRadarChartDataItem dataItemWithValue:8 description:@"英语"],

    [PNRadarChartDataItem dataItemWithValue:5 description:@"体育"],

    [PNRadarChartDataItem dataItemWithValue:9 description:@"美术"],

    [PNRadarChartDataItem dataItemWithValue:4 description:@"其他的"]

    ];

    PNRadarChart *radarChart = [[PNRadarChart alloc] initWithFrame:CGRectMake(0, 150, SCREEN_WIDTH, 300.0) items:items valueDivider:2];

    //开始绘图

    [radarChart strokeChart];

    //Add

    [self.view addSubview:radarChart];

    //效果图如下

    //

    相关文章

      网友评论

      • 4f80a9feadb6:PNPieChart 刷新数据 updateChartData 怎么不起作用?
      • AbnerZhang:请问如何设置PNBarCharty轴坐标不是从0开始?
      • 夙挽清歌:柱状图,我想让图表上面空的多一点,barChart.chartMarginTop = 50.0;设成了 50,但是x,y轴坐标就乱了,怎么办呢?求大神指点
      • AbnerZhang:请问设置柱状图的最小值没有效果怎么回事, 我是设置的yMinValue这个属性 但是设置yMaxValue是有效果的
      • 古方月:PNBarChart 柱状图只有一条数据时,显示居中,怎么设置左对齐?
      • feng_dev:line chart 折线图 如何给 每个坐标点 设置一个 小图标
      • Woody_芜笛:魅族。小米 。对应x上的点怎么设置??
      • d9b8f0c0bc9b:请问pieChart 的内部圆大小怎吗设置,谢谢!
        小vv:@izhangtt 顺便问下 piechart每个部分怎么有空间怎么设置?
        小vv:@izhangtt :joy: 太厉害了 我找了好久
        izhangtt:重写recompute()方法,设置self.innerCircleRadius = 0即可

      本文标题:PNChart用法

      本文链接:https://www.haomeiwen.com/subject/rgohettx.html