最近项目中用到了很多的图表,如柱状图,线状图,饼状图等等。接触到了一个新的第三方Charts,在做图方面确实非常强大,在使用了一段时间后,今天对他进行一个小的总结,也是自己的一点小理解。
关于charts图的基本的创建与一些基本的属性就不多一一赘述了,下面说一下我平时用到的,大家可能理解不太深刻的一些属性与用法。
(在这里说一下,各种图的属性用法相似,我就不一一区分写了,这篇文章针对的是一些对Charts有一定了解的人,自然也是能看懂的。)
1.网格的形式:gridLineDashLengths = @[@3.0f,@3.0f] 网格线长度 网格线间的间隔 (如果想要实线只需要把数组后一个改成0.0f)
2.X轴上数据的显示:vauleFormatter 可自定义;granularity 刻度 =1时可防止因放大X轴引起的数据刻度变小。 也可理解为隔几个显示一个数值
3.默认选中:
[priceLineChartView highlightValueWithX:DateNameArray.count - 1 y:[LineDataArray.lastObject floatValue] dataSetIndex:0];
4.多柱图的设置: BarChartData *data = [[BarChartData alloc] initWithDataSets:dataSets];
data.barWidth = 0.28;
[data groupBarsFromX:-0.5 groupSpace:0.1 barSpace:0.02];
5.选中叠加柱时,弹出MarkView的值的显示:
open override func refreshContent(entry: ChartDataEntry, highlight: Highlight)
{
let indexNum:Int = highlight.stackIndex
let barEntry:BarChartDataEntry = entry as! BarChartDataEntry
if indexNum == -1 {
let yVal = String (format: "%.2f", barEntry.y)
setLabel(yVal)
}else {
let yVal = String (format: "%.2f", barEntry.yValues![indexNum])
setLabel(yVal)
}
}
6.默认移动到特定位置:
[priceLineChartView moveViewToAnimatedWithXValue:[priceLineChartView.data entryCount]-1 yValue:[priceLineChartView.data dataSetCount]-1 axis:AxisDependencyLeft duration:0.01];
7.放大Charts:
[priceLineChartView.viewPortHandler refreshWithNewMatrix:CGAffineTransformMakeScale(a * 1.3, 1.0) chart:priceLineChartView invalidate:YES];
暂时就想到这么多,有更好的需要添加的我会持续整理,有什么问题也可以加我QQ530910944大家交流一下。