0
我試圖設計一個條形圖,將從自己綁定到另一個數據源的NSArrayController獲取其數據。core-plot條形圖綁定到一個NSArrayController
這裏的正確方法是什麼?
- My圖表控制器NSArrayController的
- 的一個子類。在控制器的awakeFromNib,我繪製圖形和設置綁定:
- (無效)awakeFromNib {
[超級awakeFromNib] ;
// Add plot space for horizontal bar charts
CPTXYPlotSpace *barPlotSpace = [[CPTXYPlotSpace alloc] init];
barPlotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(-20.0f) length:CPTDecimalFromFloat(200.0f)];
barPlotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(-7.0f) length:CPTDecimalFromFloat(15.0f)];
[graph addPlotSpace:barPlotSpace];
//[barPlotSpace release];
// First bar plot
CPTMutableTextStyle *whiteTextStyle = [CPTMutableTextStyle textStyle];
whiteTextStyle.color = [CPTColor whiteColor];
CPTBarPlot *barPlot = [[CPTBarPlot tubularBarPlotWithColor:[CPTColor darkGrayColor] horizontalBars:YES] retain];
barPlot.baseValue = CPTDecimalFromFloat(20.0f);
barPlot.dataSource = self;
barPlot.barOffset = CPTDecimalFromFloat(-0.25f);
barPlot.identifier = barPlot1;
barPlot.plotRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.0) length:CPTDecimalFromDouble(7.0)];
barPlot.labelTextStyle = whiteTextStyle;
[graph addPlot:barPlot toPlotSpace:barPlotSpace];
/*
// Second bar plot
barPlot = [CPTBarPlot tubularBarPlotWithColor:[CPTColor blueColor] horizontalBars:YES];
barPlot.dataSource = self;
barPlot.baseValue = CPTDecimalFromFloat(20.0f);
barPlot.barOffset = CPTDecimalFromFloat(0.25f);
barPlot.cornerRadius = 2.0;
barPlot.identifier = barPlot2;
barPlot.plotRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.0) length:CPTDecimalFromDouble(7.0)];
barPlot.delegate = self;
[graph addPlot:barPlot toPlotSpace:barPlotSpace];
*/
[barPlot bind:CPTBarPlotBindingBarLocations
toObject:self withKeyPath:@"arrangedObjects" options:nil]; }
這是正確的方法嗎?
我的arrangeObjects是一組託管對象,它們具有我需要繪製的名稱和時間字段。
謝謝!
我看了散點圖的示例應用程序,但是,我不知道應該如何將ArrangeObjects(從NSArrayController)綁定到圖上?我的佈置對象應該具有哪些字段? (x,y?)以及圖上的綁定常量是什麼? – Maverick 2012-01-29 17:30:12
綁定常量是'CPTBarPlotBindingBarLocations'和'CPTBarPlotBindingBarTips'。你控制'arrangeObjects'中的名字。您可以在界面構建器中選擇「XY值控制器」並在右側打開「屬性檢查器」窗格,在CPTTestApp中看到這一點。 – 2012-01-30 02:03:27
瞭解,但_CPTBarPlotBindingBarLocations_和* CPTBarPlotBindingBarTips *是什麼意思?假設在我的X軸上我有很多公司,Y軸是每個公司的員工數量。我的arrangeObjects是一個包含.name =公司名稱.employees =員工數量的字典數組。我將如何設置綁定? – Maverick 2012-01-30 09:00:12