Ios4 条形图上的自定义标签(CorePlot框架)

Ios4 条形图上的自定义标签(CorePlot框架),ios4,label,core-plot,Ios4,Label,Core Plot,我第一次使用CorePlot,现在需要自定义条形图。你可以在这张照片上看到 现在我想把数字加在每一条上 希望你明白我的意思 我怎样才能实现它 这是我的密码 -(void) generateDataSamples { int rawSamples [] = {1,3,6,2,1,1,3,15,2,1}; int numSamples = sizeof(rawSamples) / sizeof(int); samples = [[NSMutableArray alloc]

我第一次使用CorePlot,现在需要自定义条形图。你可以在这张照片上看到

现在我想把数字加在每一条上

希望你明白我的意思

我怎样才能实现它

这是我的密码

-(void) generateDataSamples
{
    int rawSamples [] = {1,3,6,2,1,1,3,15,2,1};
    int numSamples = sizeof(rawSamples) / sizeof(int);

    samples = [[NSMutableArray alloc] initWithCapacity:numSamples];

    for (int i = 0; i < numSamples; i++){
        double x = i;
        double y = rawSamples[i];
        NSDictionary *sample = [NSDictionary dictionaryWithObjectsAndKeys:
                                [NSNumber numberWithDouble:x],X_VAL,
                                [NSNumber numberWithDouble:y],Y_VAL,
                                nil];
        [samples addObject:sample];
    }   
}

- (void)viewDidLoad {

    [super viewDidLoad];

    [self generateDataSamples];

    double xAxisStart = 0;
    double xAxisLength = [samples count];

    double yAxisStart = 0;
    double yAxisLength = [[samples valueForKeyPath:@"@max.Y_VAL"] doubleValue];


    CPGraphHostingView *hostingView = [[CPGraphHostingView alloc] initWithFrame:self.view.bounds];
    [self.view addSubview:hostingView];

    CPXYGraph *graph = [[CPXYGraph alloc] initWithFrame:self.view.bounds];
    hostingView.hostedGraph = graph;



    CPXYPlotSpace *plotSpace = (CPXYPlotSpace *)graph.defaultPlotSpace;
    plotSpace.xRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromDouble(0)
                                                   length:CPDecimalFromDouble(xAxisLength +1)];

    plotSpace.yRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromDouble(0)
                                                   length:CPDecimalFromDouble(yAxisLength + 0.5)];  

    CPBarPlot *plot = [[CPBarPlot alloc] initWithFrame:CGRectZero];
    plot.plotRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromDouble(0.0)
                                                 length:CPDecimalFromDouble(xAxisLength)];

    CPXYAxisSet *axisSet = (CPXYAxisSet *)graph.axisSet; 
    CPLineStyle *lineStyle = [CPLineStyle lineStyle]; 
    lineStyle.lineColor = [CPColor whiteColor]; 
    lineStyle.lineWidth = 1.0f; 
    CPTextStyle *cyanStyle = [CPTextStyle textStyle]; 
    cyanStyle.color = [CPColor cyanColor]; 
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
    [formatter setMaximumFractionDigits:0]; 

    plot.barOffset = .5;
    plot.dataSource = self;


    [graph addPlot:plot];

    [plot release];
    [graph release];
    [hostingView release];
}
-(void)生成的数据样本
{
int rawSamples[]={1,3,6,2,1,1,3,15,2,1};
int numSamples=sizeof(原始样本)/sizeof(int);
samples=[[NSMutableArray alloc]initWithCapacity:numSamples];
对于(int i=0;i
如果只需要简单的数字标签,请在绘图上设置
labelTextStyle
labelFormatter
属性。如果需要更复杂的标签,可以将
-dataLabelForPlot:recordIndex:
方法添加到数据源中,并创建自己的自定义标签


有关示例代码,请参见Core Plot附带的示例应用程序。所有打印类型的标记机制都相同。Plot Gallery应用程序中的“垂直条形图”演示了第一种技术。Plot Gallery中的其他几个绘图使用数据源技术。

如果只需要简单的数字标签,请在绘图上设置
labelTextStyle
labelFormatter
属性。如果需要更复杂的标签,可以将
-dataLabelForPlot:recordIndex:
方法添加到数据源中,并创建自己的自定义标签


有关示例代码,请参见Core Plot附带的示例应用程序。所有打印类型的标记机制都相同。Plot Gallery应用程序中的“垂直条形图”演示了第一种技术。Plot Gallery中的其他几个Plot使用了数据源技术。

展示了大量知识,并提供了帮助@TeamNoX解决问题的优秀答案。对我有帮助的部分是
dataLabelForPlot
。感谢和+1。展示了丰富的知识,并给出了帮助@TeamNoX解决问题的绝佳答案。对我有帮助的部分是
dataLabelForPlot
。谢谢和+1。