浅析使用charts绘制K线图

2017-01-14 10:22:36来源:http://www.jianshu.com/p/92319bad2426作者:李境沛人点击

第七城市

在我们开发过程中有些时候要绘制折线图或条形图,要是做金融类的难免要接触到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)是一样的


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





第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台