我正在尋找iPhone的圖庫,它允許我將文本設置爲X軸上的值。在快速瀏覽core-plot後,似乎無法做到這一點。我偶然發現s7graphview,但似乎無法得到它的工作。s7圖表示例
是否有任何人誰沒有得到它的工作,並且可能能夠與我分享呢?或者是一些例子的鏈接? 它想我的大腦只是關閉導致其晚期,但我給它一個嘗試;)
最好的問候, 保羅Peelen
我正在尋找iPhone的圖庫,它允許我將文本設置爲X軸上的值。在快速瀏覽core-plot後,似乎無法做到這一點。我偶然發現s7graphview,但似乎無法得到它的工作。s7圖表示例
是否有任何人誰沒有得到它的工作,並且可能能夠與我分享呢?或者是一些例子的鏈接? 它想我的大腦只是關閉導致其晚期,但我給它一個嘗試;)
最好的問候, 保羅Peelen
核心情節確實支持自定義的刻度標記X軸: alt text http://www.sunsetlakesoftware.com/sites/default/files/CorePlotBarChartLabels.jpg
生產這些自定義標籤,你只需要設置X軸CPAxisLabelingPolicyNone的標籤策略,並提供你自己的。例如,你可以做以下複製上面繪製(在覈心情節iPhone測試應用程序):
x.labelRotation = M_PI/4;
x.labelingPolicy = CPAxisLabelingPolicyNone;
NSArray *customTickLocations = [NSArray arrayWithObjects:[NSDecimalNumber numberWithInt:1], [NSDecimalNumber numberWithInt:5], [NSDecimalNumber numberWithInt:10], [NSDecimalNumber numberWithInt:15], nil];
NSArray *xAxisLabels = [NSArray arrayWithObjects:@"Label A", @"Label B", @"Label C", @"Label D", @"Label E", nil];
NSUInteger labelLocation = 0;
NSMutableArray *customLabels = [[NSMutableArray alloc] initWithCapacity:[xAxisLabels count]];
for (NSNumber *tickLocation in customTickLocations)
{
CPAxisLabel *newLabel = [[CPAxisLabel alloc] initWithText: [xAxisLabels objectAtIndex:labelLocation++] textStyle:x.labelTextStyle];
newLabel.tickLocation = [tickLocation decimalValue];
newLabel.offset = x.labelOffset + x.majorTickLength;
newLabel.rotation = M_PI/4;
[customLabels addObject:newLabel];
[newLabel release];
}
x.axisLabels = [NSSet setWithArray:customLabels];
有沒有必要繼承CPAxis添加這些標籤。
您可以更改標籤的名稱作爲
-(NSArray *)newAxisLabelsAtLocations:(NSArray *)locations
{
NSMutableArray *newLabels = [[NSMutableArray alloc] initWithCapacity:locations.count];
for (NSDecimalNumber *tickLocation in locations) {
NSString *labelString = [self.labelFormatter stringForObjectValue:tickLocation];
CPAxisLabel *newLabel = [[CPAxisLabel alloc] initWithText:[NSString stringWithFormat:@"Day %@",labelString] textStyle:self.labelTextStyle];
//[newLabel setTextColor:[CPColor whiteColor]];
newLabel.tickLocation = [tickLocation decimalValue];
newLabel.rotation = self.labelRotation;
switch (self.tickDirection) {
case CPSignNone:
newLabel.offset = self.labelOffset + self.majorTickLength/2.0f;
break;
case CPSignPositive:
case CPSignNegative:
newLabel.offset = self.labelOffset + self.majorTickLength;
break;
}
[newLabels addObject:newLabel];
[newLabel release];
}
return newLabels;
}
在
在覈心情節CPAxis.m
希望這有助於...;)
好吧...但我還是有以下錯誤: 錯誤:沒有東西結構或聯合 錯誤請求成員的axisLabelOffset「:不兼容類型的參數1「setMajorIntervalLength:」 誤差不兼容的類型的參數1「setMajorIntervalLength:」 錯誤:請求構件「axisLabelOffset」的東西不結構或聯合 錯誤:請求在一些構件「邊界」不是一個結構或聯合 錯誤:在一些請求構件「defaultPlotSymbol」不是一個結構或聯合 錯誤:在一些要求會員「界限」不是一個結構或聯合 :( – 2009-12-11 18:53:09
添加只是這些問題的一個新問題:http://stackoverflow.com/questions/1890207/coreplot-problems – 2009-12-11 19:08:29
布拉德感謝這個偉大的幫助。可能是核心情節會更有幫助,因爲我們喜歡newBees,如果我們得到了一些增強的功能更新教程,如果我們通過您在本教程中所示的畫面,這將是很大的幫助 – 2009-12-12 04:20:53
是的,我們需要有一些更好的文檔,但不幸的是,框架正在變化得很快,以至於很難保持最新。我們正在努力將穩定版發佈到一起,並且演練文檔將成爲該軟件包的一部分。另請注意,本教程由第三方編寫。 – 2009-12-12 15:37:46