2012-01-29 41 views
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是一組託管對象,它們具有我需要繪製的名稱和時間字段。

謝謝!

回答

0

使用綁定時,不要設置數據源。不要忘記將字段綁定到CPTBarPlotBindingBarTips

CPTTestApp示例應用程序演示了將散點圖綁定到數組控制器。條形圖的過程是相同的,除了綁定常量具有不同的名稱。

+0

我看了散點圖的示例應用程序,但是,我不知道應該如何將ArrangeObjects(從NSArrayController)綁定到圖上?我的佈置對象應該具有哪些字段? (x,y?)以及圖上的綁定常量是什麼? – Maverick 2012-01-29 17:30:12

+0

綁定常量是'CPTBarPlotBindingBarLocations'和'CPTBarPlotBindingBarTips'。你控制'arrangeObjects'中的名字。您可以在界面構建器中選擇「XY值控制器」並在右側打開「屬性檢查器」窗格,在CPTTestApp中看到這一點。 – 2012-01-30 02:03:27

+0

瞭解,但_CPTBarPlotBindingBarLocations_和* CPTBarPlotBindingBarTips *是什麼意思?假設在我的X軸上我有很多公司,Y軸是每個公司的員工數量。我的arrangeObjects是一個包含.name =公司名稱.employees =員工數量的字典數組。我將如何設置綁定? – Maverick 2012-01-30 09:00:12

相關問題