gpt4 book ai didi

iOS Core Plot CPTAxisLabel 与 CPTPlot 对齐

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:27 25 4
gpt4 key购买 nike

请看下面这张图片。我附上了文件。 CPTAxisLabel 标签的问题。它们被放置在刻度线下,但它们并没有像我想要的那样被放置在 CPTPlot 下。

如何向该标签添加左偏移量?我需要将我的标签放置在 CPTPlot 对象的中间。

enter image description here

(更新:)

-(void)configureGraph
{

NSInteger max = 0;
for (NSNumber *number in self.values) {
NSInteger num = [number integerValue];
if (num > max) {
max = num;
}
}

CPTGraph *graph = [[CPTXYGraph alloc] initWithFrame:self.bounds];

graph.plotAreaFrame.masksToBorder = NO;

self.hostedGraph = graph;

graph.paddingBottom = 80.0f;
graph.paddingLeft = 0.0f;
graph.paddingTop = 50.0f;
graph.paddingRight = 0.0f;

CGFloat xMin = -0.5f;
CGFloat xMax = [self.titles count];
if (xMax < 7.0) {
xMax = 7.0;
}
CGFloat yMin = 0.0f;
CGFloat yMax = max + 25;

CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *) graph.defaultPlotSpace;
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(xMin) length:CPTDecimalFromFloat(xMax)];
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(yMin) length:CPTDecimalFromFloat(yMax)];

//graph.backgroundColor = [[UIColor grayColor] CGColor];
//graph.plotAreaFrame.fill = [CPTFill fillWithColor:[CPTColor redColor]];

}

-(void)configurePlots
{
CPTBarPlot *plot = [[CPTBarPlot alloc] init];
//plot.barOffset = CPTDecimalFromFloat(0.30);
plot.fill = [CPTFill fillWithColor:[CPTColor colorWithComponentRed:190.0f/255.0f green:203.0f/255.0f blue:103.0f/255.0f alpha:1.0]];
//plot.barWidth = CPTDecimalFromDouble(0.75);
plot.lineStyle = nil;
plot.barCornerRadius = 1.0;
plot.dataSource = self;
plot.delegate = self;

CPTGraph *graph = self.hostedGraph;
[graph addPlot:plot toPlotSpace:graph.defaultPlotSpace];

}

#pragma mark - CPTPlotDataSource methods
-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot {
return [self.titles count];
}

-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index {
if ((fieldEnum == CPTBarPlotFieldBarTip) && (index < [self.titles count])) {
return [self.values objectAtIndex:index];
}
return [NSDecimalNumber numberWithUnsignedInteger:index];
}

-(CPTLayer *)dataLabelForPlot:(CPTPlot *)plot recordIndex:(NSUInteger)idx
{

plot.labelOffset = 0;

CPTMutableTextStyle *style = [CPTMutableTextStyle textStyle];
style.color = [[CPTColor whiteColor] colorWithAlphaComponent:1];
style.fontName = @"Helvetica-Bold";
style.fontSize = 12.0f;

NSString *valueString = [NSString stringWithFormat:@"%@", [self.values objectAtIndex:idx]];

return [[CPTTextLayer alloc] initWithText:valueString style:style];
}

- (void)configureAxes
{

CPTXYAxisSet *axisSet = (CPTXYAxisSet *) self.hostedGraph.axisSet;
axisSet.xAxis.hidden = YES;
axisSet.yAxis.hidden = YES;

CPTMutableTextStyle *style = [CPTMutableTextStyle textStyle];
style.color = [[CPTColor whiteColor] colorWithAlphaComponent:1];
style.fontName = @"Helvetica-Bold";
style.fontSize = 12.0f;

NSMutableArray *labels = [[NSMutableArray alloc] initWithCapacity:5];
int idx =0;
for (NSString *string in self.titles)
{
CPTAxisLabel *label = [[CPTAxisLabel alloc] initWithText:string textStyle:style];
label.rotation = M_PI/2;
label.tickLocation = CPTDecimalFromInt(idx);
label.offset = 10.0f;
[labels addObject:label];
idx+=1;
}

axisSet.xAxis.axisLabels = [NSSet setWithArray:labels];
}

最佳答案

要么将 barOffset 设置为零 (0) 并使条形位置与刻度位置相同,要么调整数据源返回的条形位置以说明 barOffset.

关于iOS Core Plot CPTAxisLabel 与 CPTPlot 对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15681070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com