CorePlot折線圖高級用法

以下內(nèi)容是從開源庫自帶的例子中選出的有實(shí)用性的高級用法及部分代碼


CPTLineCap類:箭頭指示器

例如:

CPTXYGraph *newGraph = [[CPTXYGraph alloc] initWithFrame:bounds];

CPTXYAxisSet *xyAxisSet = (CPTXYAxisSet *)newGraph.axisSet; CPTXYAxis *xAxis = xyAxisSet.xAxis;

CPTLineCap *lineCap = [[CPTLineCap alloc] init];

?lineCap.lineStyle = xAxis.axisLineStyle;?

?lineCap.lineCapType = CPTLineCapTypeSweptArrow;

?lineCap.size = CGSizeMake(12.0, 15.0);?

lineCap.fill = [CPTFill fillWithColor:xAxis.axisLineStyle.lineColor]; xAxis.axisLineCapMax = lineCap;


CPTGradient類:負(fù)責(zé)填充色


例如:

CPTScatterPlot *dataSourceLinePlot = [[CPTScatterPlot alloc] initWithFrame:newGraph.bounds];

CPTColor *areaColor = [CPTColor colorWithComponentRed:CPTFloat(1.0) green:CPTFloat(1.0) blue:CPTFloat(1.0) alpha:CPTFloat(0.6)];?

?CPTGradient *areaGradient = [CPTGradient gradientWithBeginningColor:areaColor endingColor:[CPTColor clearColor]]; areaGradient.angle = -90.0;?

?CPTFill *areaGradientFill = [CPTFill fillWithGradient:areaGradient]; dataSourceLinePlot.areaFill = areaGradientFill; dataSourceLinePlot.areaBaseValue = CPTDecimalFromDouble(0.0);

其中朝聋,areaBaseValue為設(shè)置該填充顏色從哪個(gè)值開始描述,上例就是從(0,0)開始填充囤躁。

areaFill和areaFill2共兩個(gè)填充冀痕,一個(gè)填充上面一個(gè)填充下面的顏色荔睹。


CPTTradingRangePlot類:每個(gè)折點(diǎn)用圖片和文字展示具體數(shù)值

CPTMutableLineStyle *whiteLineStyle = [CPTMutableLineStyle lineStyle]; whiteLineStyle.lineColor = [CPTColor whiteColor]; whiteLineStyle.lineWidth = 2.0;

CPTTradingRangePlot *ohlcPlot = [[CPTTradingRangePlot alloc] initWithFrame:newGraph.bounds];?

?ohlcPlot.identifier = @"OHLC";?

?ohlcPlot.lineStyle = whiteLineStyle; //向上或向下的線條?

ohlcPlot.plotStyle = CPTTradingRangePlotStyleCandleStick; ohlcPlot.shadow = whiteShadow;?

?ohlcPlot.labelShadow = whiteShadow;?

?[newGraph addPlot:ohlcPlot];

效果如下:



CPTLegend類:條目說明(不同顏色柱狀的說明)


CPTLegend *theLegend = [CPTLegend legendWithGraph:graph]; theLegend.fill = [CPTFill fillWithColor:[CPTColor colorWithGenericGray:CPTFloat(0.15)]];?

?theLegend.borderLineStyle = barLineStyle;?

?theLegend.cornerRadius = 10.0;?

?theLegend.swatchSize = CGSizeMake(16.0, 16.0);?

?CPTMutableTextStyle *whiteTextStyle = [CPTMutableTextStyle textStyle];?

?whiteTextStyle.color = [CPTColor whiteColor];

?whiteTextStyle.fontSize = 12.0;?

?theLegend.textStyle = whiteTextStyle;?

?theLegend.rowMargin = 10.0;?

?theLegend.numberOfRows = 1;

?theLegend.paddingLeft = 12.0; theLegend.paddingTop = 12.0;

?theLegend.paddingRight = 12.0; theLegend.paddingBottom = 12.0;?

?graph.legend = theLegend; graph.legendAnchor = CPTRectAnchorBottom;?

?graph.legendDisplacement = CGPointMake(0.0, 5.0);



Bar Plot 1和Bar Plot 2就是條目說明。

CPTPlotSymbol類:折線的節(jié)點(diǎn)用圓點(diǎn)顏色標(biāo)注金度,如果需要展示數(shù)值時(shí)应媚,和CPTTradingRangePlot類類似,可以2選1

例如:

?CPTMutableLineStyle * symbolLineStyle = [CPTMutableLineStyle lineStyle];

?symbolLineStyle.lineColor = [CPTColor blackColor]; symbolLineStyle.lineWidth = 2.0;?

?CPTPlotSymbol * plotSymbol = [CPTPlotSymbol ellipsePlotSymbol];?

?plotSymbol.fill = [CPTFill fillWithColor:[CPTColor blueColor]];?

?plotSymbol.lineStyle = symbolLineStyle;?

?plotSymbol.size = CGSizeMake(10.0, 10.0); dataSourceLinePlot.plotSymbol = plotSymbol;

圖例:



注:可以參考以下blog猜极,注釋較細(xì)

http://longshuaili123.wap.blog.163.com/w2/blogDetail.do;jsessionid=A17F2F45F621C78D5E2CFEC55EF1784C.blog160-8010?blogId=fks_087067092081083069083081080070072084088068093080087065082&showRest=true&p=5&hostID=longshuaili123


CPTScatterPlot類:畫折線中姜,也能畫直線,可用于類似數(shù)據(jù)統(tǒng)計(jì)的中心線跟伏,高位線丢胚,警告線


繪制時(shí)主要的dataSource的兩個(gè)代理方法:

1、numberOfRecordsForPlot: 返回散射點(diǎn)個(gè)數(shù)

2受扳、-(NSNumber*)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnumrecordIndex:(NSUInteger)index 或者?

-(double)doubleForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index等携龟,都是為了讓CorePlot知道每個(gè)散射點(diǎn)的具體值(x,y)。

第1個(gè)參數(shù)指定要繪制的圖形對象(CPTPlot)勘高,第2個(gè)參數(shù)指定當(dāng)前正在繪制的點(diǎn)的字段名(代表x坐標(biāo)或y坐標(biāo))峡蟋,第3個(gè)參數(shù)表示正在繪制第幾個(gè)點(diǎn)。

示例圖:


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末华望,一起剝皮案震驚了整個(gè)濱河市蕊蝗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赖舟,老刑警劉巖蓬戚,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異宾抓,居然都是意外死亡子漩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門石洗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來幢泼,“玉大人,你說我怎么就攤上這事讲衫÷瓶茫” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵焦人,是天一觀的道長。 經(jīng)常有香客問我重父,道長花椭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任房午,我火速辦了婚禮矿辽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己袋倔,他們只是感情好雕蔽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布恐仑。 她就那樣靜靜地躺著髓梅,像睡著了一般载荔。 火紅的嫁衣襯著肌膚如雪雾狈。 梳的紋絲不亂的頭發(fā)上觉鼻,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天钝域,我揣著相機(jī)與錄音亭饵,去河邊找鬼咐扭。 笑死华弓,一個(gè)胖子當(dāng)著我的面吹牛食零,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播寂屏,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼贰谣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了迁霎?” 一聲冷哼從身側(cè)響起吱抚,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎欧引,沒想到半個(gè)月后频伤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡芝此,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年憋肖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片婚苹。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡岸更,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出膊升,到底是詐尸還是另有隱情怎炊,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布廓译,位于F島的核電站评肆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏非区。R本人自食惡果不足惜瓜挽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望征绸。 院中可真熱鬧久橙,春花似錦俄占、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至祝拯,卻和暖如春甚带,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鹿驼。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工欲低, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人畜晰。 一個(gè)月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓砾莱,卻偏偏與公主長得像腊瑟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子块蚌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容