Ios4 条形图上的自定义标签(CorePlot框架)
我第一次使用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]
-(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。