簡體   English   中英

使用JBChartView庫將條形圖分組

[英]Grouped Bar chart with JBChartView library

我需要在我正在執行的iOS項目中繪制分組的條形圖。 因此,我使用的iOS第三方庫是Jawbone的JBChartView。 根據我從研究中獲得的知識,我發現該庫中沒有任何已受支持的方式。

但是我嘗試做如下事情:

- (NSUInteger)numberOfBarsInBarChartView:(JBBarChartView *)barChartView
{
    return [self.chartLegend count]; // number of bars in chart    "BB", "HB", "FB", "RO"
}

- (CGFloat)barChartView:(JBBarChartView *)barChartView heightForBarViewAtIndex:(NSUInteger)index
{
    CGFloat height = (isnan((([[chartData objectAtIndex:index] doubleValue]/total)*100))) ? 0.0 : (([[chartData objectAtIndex:index] doubleValue]/total)*100);
    NSLog(@"height : %f", height);
    return height;
}

- (UIView *)barChartView:(JBBarChartView *)barChartView barViewAtIndex:(NSUInteger)index {
    CGFloat height = (isnan((([[chartData objectAtIndex:index] doubleValue]/total)*100)))
                        ? 0.0
                        : (([[chartData objectAtIndex:index] doubleValue]/total)*100);

    UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 50, height)];
    [view setBackgroundColor:[UIColor grayColor]];

    UIView *firstHalf = [[UIView alloc] initWithFrame:CGRectMake(0, height, 25, height)];
    [firstHalf setBackgroundColor:[UIColor redColor]];

    UIView *secondHalf = [[UIView alloc] initWithFrame:CGRectMake(25, height, 25, height/2)];
    if (index == 0) {
        [secondHalf setBackgroundColor:UIColorFromRGB(0xF15854)];
    } else if (index == 1) {
        [secondHalf setBackgroundColor:UIColorFromRGB(0x5DA5DA)];
    } else if (index == 2) {
        [secondHalf setBackgroundColor:UIColorFromRGB(0xFAA43A)];
    } else if (index == 3) {
        [secondHalf setBackgroundColor:UIColorFromRGB(0x60BD68)];
    }

    [view addSubview:firstHalf];
    [view addSubview:secondHalf];

    return view;
}

注意:請忽略我用來確定紅色和其他各種顏色條的高度的數據值。 UIColorFromRGB是我在開發中使用的自定義方法。

但它給出的圖形如下:

我從實現-(UIView *)barChartView:(JBBarChartView *)barChartView barViewAtIndex:(NSUInteger)index;得到的結果;方法

但是我真正想使用JBChartView庫繪制的內容如下:

期望圖

任何幫助都可以得到感激和尊重,但是除非您不建議使用任何其他庫來完成此工作。 我喜歡JBChartView庫的簡單性。 :-)

提前致謝!

從我發現的結果來看,使用標准方法是不可能的,但是可以解決。 參見https://github.com/Jawbone/JBChartView/issues/139

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM