关于图表第三方Charts的一些理解与总结

      最近项目中用到了很多的图表,如柱状图,线状图,饼状图等等。接触到了一个新的第三方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大家交流一下。

原文地址:https://www.cnblogs.com/CodingMann/p/8080630.html