K線開(kāi)發(fā)之繪制OHLC圖例证、線段路呜、圓形


接著上篇文章繼續(xù)說(shuō)。在上文中我們把蠟燭繪制完织咧,也講到在K線中常見(jiàn)的幾種圖形:

  1. 蠟燭
  2. OHLC
  3. 線段
  4. 帶狀
  5. 圓形

那在這篇文章里胀葱,我們把其余的也繪制一下,爭(zhēng)取做一個(gè)基礎(chǔ)的類(lèi)庫(kù)笙蒙,這樣在開(kāi)發(fā)框架時(shí)就可以直接使用抵屿。


OHLC圖

先上兩張效果圖:

OHLC圖
OHLC圖

如圖所示,它是由4個(gè)數(shù)據(jù)生成:開(kāi)盤(pán)捅位、收盤(pán)轧葛、最高、最低艇搀。中間的線是最高點(diǎn)至最低點(diǎn)連接而成尿扯,兩邊的分別是開(kāi)盤(pán)點(diǎn)和收盤(pán)點(diǎn)與中間線連接而成。

OK焰雕,知道思路以后衷笋,直接上代碼:

/**
 生成OHLC

 @param model 蠟燭坐標(biāo)模型
 @return 返回圖層
 */
+ (CAShapeLayer *)getOHLCLayerWithPointModel:(YKCandlePointModel *)model
{
    //判斷是否為漲跌
    BOOL isRed = model.oPoint.y >= model.cPoint.y ? YES : NO;
    
    UIBezierPath *path = [UIBezierPath bezierPath];
    //繪制上下影線
    [path moveToPoint:model.lPoint];
    [path addLineToPoint:model.hPoint];
    //開(kāi)盤(pán)線
    [path moveToPoint:model.oPoint];
    [path addLineToPoint:CGPointMake(model.oPoint.x -6, model.oPoint.y)];
    //開(kāi)盤(pán)線
    [path moveToPoint:model.cPoint];
    [path addLineToPoint:CGPointMake(model.cPoint.x +6, model.cPoint.y)];
    
    CAShapeLayer *layer = [CAShapeLayer layer];
    layer.path = path.CGPath;
    
    //判斷漲跌來(lái)設(shè)置顏色
    if (isRed)
    {
        //漲,設(shè)置紅色
        layer.strokeColor = [UIColor redColor].CGColor;
    } else
    {
        //跌矩屁,設(shè)置綠色
        layer.strokeColor = [UIColor greenColor].CGColor;
    }
    layer.fillColor = [UIColor clearColor].CGColor;
    
    return layer;
}

單辟宗、多條線

效果圖:

線段

上圖中的淡綠色、粉色吝秕、黃色線就是我們所要繪制的泊脐,這里再解釋一下為什么標(biāo)題是單、多條線烁峭,因?yàn)樵谟械腒線指標(biāo)中規(guī)定某一個(gè)值是用一條連續(xù)的線段表示容客;但有的指標(biāo)數(shù)值中間會(huì)有無(wú)效值,那無(wú)效值就不會(huì)連接约郁,這樣的話這條線段就是不連續(xù)的缩挑,形成多條線。

其實(shí)在分時(shí)線繪制的時(shí)候棍现,也說(shuō)過(guò)如何繪制一條線,這里就不再贅述了镜遣,直接上代碼:

單條線工具類(lèi):

/**
 生成單條線

 @param pointArr 坐標(biāo)點(diǎn)數(shù)組
 @param lineColor 線顏色
 @return 返回線段圖層
 */
+ (CAShapeLayer *)getSingleLineLayerWithPointArray:(NSArray *)pointArr lineColor:(UIColor *)lineColor
{
    UIBezierPath *path = [UIBezierPath getBezierPathWithPointArr:pointArr];
    
    CAShapeLayer *layer = [CAShapeLayer layer];
    layer.path = path.CGPath;
    layer.lineWidth = 1.f;
    layer.strokeColor = lineColor.CGColor;
    layer.fillColor = [UIColor clearColor].CGColor;
    
    return layer;
}

多條線工具類(lèi):

/**
 生成包含多條線的線段

 @param pointArr 坐標(biāo)點(diǎn)數(shù)組
 @param lineColor 線顏色
 @return 返回線段圖層
 */
+ (CAShapeLayer *)getMultipleLineLayerWithPointArray:(NSArray *)pointArr lineColor:(UIColor *)lineColor
{
    UIBezierPath *path = [UIBezierPath bezierPath];
    
    for (int idxX=0; idxX<pointArr.count; idxX++)
    {
        NSArray *idxXArr = pointArr[idxX];
        
        [path moveToPoint:[[idxXArr firstObject] CGPointValue]];
        for (int idxY=1; idxY<idxXArr.count; idxY++)
        {
            [path addLineToPoint:[idxXArr[idxY] CGPointValue]];
        }
    }
    
    CAShapeLayer *layer = [CAShapeLayer layer];
    layer.path = path.CGPath;
    layer.lineWidth = 1.f;
    layer.strokeColor = lineColor.CGColor;
    layer.fillColor = [UIColor clearColor].CGColor;
    
    return layer;
}

圓形

接下來(lái)是圓形己肮,圓形就比較簡(jiǎn)單了士袄,就是那么一個(gè)單純的圓。只是在開(kāi)發(fā)中谎僻,一般都是由多個(gè)圓形成一定的趨勢(shì)娄柳。

這里直接上代碼:

/**
 生成圓

 @param point 圓心坐標(biāo)
 @param color 圓顏色
 @return 返回圖層
 */
+ (CAShapeLayer *)getCircleLayerWithPoint:(CGPoint )point color:(UIColor *)color
{
    //直接用圓描述路徑
    UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:point radius:3.f startAngle:0.f
  endAngle:(CGFloat)M_PI * 2 clockwise:true];
    //生成圖層 并設(shè)置路徑和屬性
    CAShapeLayer *layer = [CAShapeLayer layer];
    layer.path = path.CGPath;
    layer.fillColor = color.CGColor;
    layer.strokeColor = color.CGColor;
    
    return layer;
}

帶狀

這里要說(shuō)明一下,帶狀這種圖形用文字?jǐn)⑹霾磺宄疑埽枰Y(jié)合實(shí)際的數(shù)據(jù)才能理解赤拒。所以這里就先不寫(xiě)Demo,等到后面我們?cè)诳蚣苤薪尤雽?shí)際數(shù)據(jù)了诱鞠,再詳述挎挖。

繪制效果

上面光發(fā)代碼了,這里把最后的運(yùn)行結(jié)果發(fā)上來(lái):

運(yùn)行結(jié)果

需要源碼的點(diǎn)擊這里航夺。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蕉朵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子阳掐,更是在濱河造成了極大的恐慌始衅,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缭保,死亡現(xiàn)場(chǎng)離奇詭異汛闸,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)艺骂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)诸老,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人彻亲,你說(shuō)我怎么就攤上這事孕锄。” “怎么了苞尝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵畸肆,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我宙址,道長(zhǎng)轴脐,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任抡砂,我火速辦了婚禮大咱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘注益。我一直安慰自己碴巾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布丑搔。 她就那樣靜靜地躺著厦瓢,像睡著了一般提揍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上煮仇,一...
    開(kāi)封第一講書(shū)人閱讀 51,443評(píng)論 1 302
  • 那天劳跃,我揣著相機(jī)與錄音,去河邊找鬼浙垫。 笑死刨仑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的夹姥。 我是一名探鬼主播杉武,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼佃声!你這毒婦竟也來(lái)了艺智?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤圾亏,失蹤者是張志新(化名)和其女友劉穎十拣,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體志鹃,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夭问,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了曹铃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缰趋。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖陕见,靈堂內(nèi)的尸體忽然破棺而出秘血,到底是詐尸還是另有隱情,我是刑警寧澤评甜,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布灰粮,位于F島的核電站,受9級(jí)特大地震影響忍坷,放射性物質(zhì)發(fā)生泄漏粘舟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一佩研、第九天 我趴在偏房一處隱蔽的房頂上張望柑肴。 院中可真熱鬧,春花似錦旬薯、人聲如沸晰骑。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)硕舆。三九已至隶症,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間岗宣,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工淋样, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留耗式,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓趁猴,卻偏偏與公主長(zhǎng)得像刊咳,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子儡司,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

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