Ios Can';t实现核心图条形图中条形图颜色的更改

Ios Can';t实现核心图条形图中条形图颜色的更改,ios,objective-c,core-plot,bar-chart,Ios,Objective C,Core Plot,Bar Chart,我有一个12条的简单条形图。为此,我使用核心图。我需要实现的方法,颜色的酒吧根据他们的价值从浅蓝色的最小值到深蓝色的最大值 现在我用一种颜色给所有的条涂上颜色: self.barPlot.fill = [CPTFill fillWithColor:[CPTColor colorWithComponentRed:100.0f / 255.0f green:192.0f / 255.0f blue:245.0f / 255.0f alpha:1.0f]]; 我知道可以为每个条设置颜色的方法: -(

我有一个12条的简单条形图。为此,我使用核心图。我需要实现的方法,颜色的酒吧根据他们的价值从浅蓝色的最小值到深蓝色的最大值

现在我用一种颜色给所有的条涂上颜色:

self.barPlot.fill = [CPTFill fillWithColor:[CPTColor colorWithComponentRed:100.0f / 255.0f green:192.0f / 255.0f blue:245.0f / 255.0f alpha:1.0f]];
我知道可以为每个条设置颜色的方法:

-(CPTFill *)barFillForBarPlot:(CPTBarPlot *)barPlot recordIndex:(NSUInteger)idx;

但是我找不到适合我的代码。有什么帮助吗?

你试过这个吗,有用吗

CPTGradient *barGradient = [CPTGradient gradientWithBeginningColor:[CPTColor blueColor] endingColor:[CPTColor blackColor]];
self.barPlot.fill = [CPTFill fillWithGradient:barGradient];

可以从RGB值创建颜色,就像在第一个代码示例中计算填充一样。例如,要将值映射到颜色,可以将红色设置为0,将蓝色设置为255,然后将绿色从0深蓝色更改为255浅蓝色。这不是最好的解决方案,最好根据您的值更改蓝色值。您可能想很好地使用OSX颜色,并尝试一下使用RGB滑块。

我发布了解决问题的代码。谢谢你的支持

    - (CPTFill *) barFillForBarPlot:(CPTBarPlot *)barPlot recordIndex:(NSUInteger)index
{
    CGFloat minValue = [[[[[PlotDataStore sharedInstance] docsCount] valueForKey:@"docs"] valueForKeyPath:@"@min.self"] floatValue];
    CGFloat maxValue = [[[[[PlotDataStore sharedInstance] docsCount] valueForKey:@"docs"] valueForKeyPath:@"@max.self"] floatValue];
    CGFloat value = [[[[[PlotDataStore sharedInstance] docsCount] valueForKey:@"docs"] objectAtIndex:index] floatValue];
    CGFloat resultHue = (value * 0.6f / (maxValue - minValue)) + 0.4f;

    return [CPTFill fillWithColor:[CPTColor colorWithCGColor:[UIColor colorWithHue:0.561f saturation:resultHue brightness:1.0f alpha:1.0f].CGColor]];
}

那么,主要问题是如何将值映射到颜色?否则,你提到的第二种方法正是你所需要的!是的,如何从浅蓝色到深蓝色形成正确的渐变。。