美文网首页金融k线绘制iOS Developer
浅析使用charts绘制K线图2.0版本

浅析使用charts绘制K线图2.0版本

作者: 小沛2016 | 来源:发表于2016-10-29 22:57 被阅读1301次

    -- 请看3.0版本

    在我们开发过程中有些时候要绘制折线图或条形图,要是做金融类的难免要接触到K线图

    今天我就来谈谈我的经验

    首先我们先花2分钟来看看这一幅图


    在初中我们就知道 点动成线  线动成面

    在这里我们把每一个点称之为实体(Entry)  而相应的每个实体有对应的下标和值

    我们把实体的集合称之为数据集(Dataset)  而其又有2个属性 一个是实体的图例  另外一个是存放实体的数组

    而数据集的集合名为图表数据(Data)  其2个属性分别为  x标签数组 与  存放数据集的数组

    最后我们把图表数据发在图表(chart)里就大功告成了

    废话不多说,下面就是上代码了

    - (void)setUI{

    //1 创建一张表

    LineChartView * lineView =[[LineChartView alloc]initWithFrame:CGRectMake(0, 30, 300, 600)];

    [self setChartWith:lineView];

    //2. 创建数据

    //2.1

    NSMutableArray * XArray =[[NSMutableArray alloc]init];

    NSMutableArray * YArray =[[NSMutableArray alloc]init];

    for (int i = 0 ; i<16; i++) {

    ChartDataEntry * entry =[[ChartDataEntry alloc]initWithValue: arc4random()%96+i xIndex:i];

    [YArray addObject:entry];

    [XArray addObject:[NSString stringWithFormat:@"%d天",i]];

    }

    //2.2

    LineChartDataSet * dataSet =[[LineChartDataSet alloc]initWithYVals:YArray label:@"橙色的线"];

    [self setDataSetWith:dataSet];

    //2.3

    LineChartData * LineData =[[LineChartData alloc]initWithXVals:XArray dataSets:@[dataSet]];

    lineView.data = LineData;

    //这是一条虚线
    ChartLimitLine *ll1 = [[ChartLimitLine alloc] initWithLimit:100.0 label:@"Y=100"]; //100 是说y轴的值 是Y=100的那条线

    ll1.lineWidth = 3.0; //高度

    ll1.lineDashLengths = @[@3.f, @3.f]; //第一个是 线的宽  第二个是间距

    ll1.labelPosition = ChartLimitLabelPositionRightTop;//这条线的名字的位置

    ll1.valueFont = [UIFont systemFontOfSize:10.0];//线名字的大小

    ll1.lineColor =[UIColor colorWithRed:0.396 green:1.000 blue:0.875 alpha:1.000];

    [lineView.leftAxis addLimitLine:ll1];

    [self.view addSubview:lineView];

    }

    //图表的设置

    - (void)setChartWith:(id)chart{

    LineChartView * chartView = chart;

    chartView.descriptionText = @"这表的名字";

    chartView.rightAxis.enabled = NO;

    chartView.xAxis.labelPosition = XAxisLabelPositionBothSided;

    chartView.leftAxis.drawGridLinesEnabled = NO;

    chartView.xAxis.drawGridLinesEnabled = NO;

    }

    //图表的数据集的设置

    - (void)setDataSetWith:(id)dataSet{

    LineChartDataSet * dataSet1 = dataSet;

    dataSet1.drawCirclesEnabled = NO;

    dataSet1.colors = @[[UIColor orangeColor]];

    }

    好了 然后效果图就是这样子的了

    折线图(line)和柱状图(bar)是一样的



    今天就先写到这里  今后再继续完善。



    相关文章

      网友评论

      • 弱小的码农:为什么我这个方法报错了LineChartData *data = [[LineChartData alloc] initWithXVals:xVals initWithDataSets:dataSets]; 这是为什么啊
        小沛2016:我写的时候是swift2.0 你写的时候是swift3.0 他里面的语法变了
      • 真的很菜:您好 我在现在使用PieChartView 想默认一块被选择的区域块,求支招
        小沛2016:@freshflower 666
        真的很菜:@李境沛 实现啦谢谢
        小沛2016:不好意思 之前在赶项目

        我没想到 你实现了吗

      本文标题:浅析使用charts绘制K线图2.0版本

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