基本概念说明
core-plot的UML类图如上
从上图可以看出CPTGraph类是比较核心的类,它与CPTAnnotation,CPTLegend,CPTPlotAreaFrame,CPTAxisSet,CPTPlot,CPTPlotSpace成关联关系,通过设置CPTGraph的各项参数并将其添加到视图中,即可实现统计图的绘制与显示。
关键类的功能与作用
CPTAnnotation
|
CPTAnnotation是抽象类,它的两个子类分别是CPTLayerAnnotation与CPTPlotSpaceAnnotation,分别用于为基本图层与绘图图层添加文字注释。
|
CPTLegend
|
用于添加图例。
|
CPTPlotAreaFrame
|
其内部的核心类为
CPTPlotArea,可以理解为plot的容器,通过设置可以定制plot以外的图形,如网格效果,背景填充颜色等,还定义了交互行为协议
。
|
CPTAxisSet
|
用于管理CPTAxis类与其子类,实现坐标轴的定制与显示。
|
CPTPlot
|
CPTPlot是抽象的绘图类,其有CPTBarPlot、CPTPieChart、CPTRangePlot、CPTScatterPlot、CPTTradingRangePlot五个子类,通过实现五个子类,可以分别实现条状图、圆饼图、幅度图、散点图、交易幅度图的现实。其设计思路与tableView十分相似,也是通过datasource实现数据的填充,delegate实现交互行为与特殊数据填充。
|
CPTPlotSpace
|
通过定义CPTPlotSpace实现图空间的定制,因为坐标轴中的图画通常是无限大的,因此需要配置相关的参数决定需要显示的部分。
|
因为,无论是绘制什么样的图,实际上就是针对性地设置以上五个类对应的对象的各项参数。
经典例程分析
条形图
结合代码注释以及最下面的界面说明图能基本了解如何绘制图片。
//
将
graph
添加到指定的
hostingView
,普通的
view
无法添加
graph
CPTGraph *graph = [[ CPTXYGraph alloc ] initWithFrame :bounds]; [ self addGraph :graph toHostingView :hostingView]; // 设置主题,效果如手机设置主题。有如下主题 kCPTDarkGradientTheme 、 kCPTPlainBlackTheme 、 kCPTPlainWhiteTheme 、 kCPTSlateTheme 、 kCPTStocksTheme [ self applyTheme :theme toGraph :graph withDefault :[ CPTTheme themeNamed : kCPTPlainWhiteTheme ]]; // 设置 plotAreaFrame 的大小, plotAreaFrame 是 graph 上的一张子图。设置 padding 参数是用来设置子图的四个边缘与父视图的距离 graph. plotAreaFrame . paddingLeft += self . titleSize * CPTFloat ( 2.5 ); graph. plotAreaFrame . paddingTop += self . titleSize * CPTFloat ( 1.25 ); graph. plotAreaFrame . paddingRight += self . titleSize ; |