我正在用Core-Plot製作一個漂亮圖形的mac osx應用程序。它的一個折線圖(scatterplot)上有多個點,可以用一個plotsymbol圈顯示出來。 我的目標是在用戶將鼠標懸停在圖表上的一個點上時顯示一個標籤,其中包含點的值。Core-Plot Mac:在圖中的鼠標懸停點顯示標籤
我已經添加了NSTracking到圖表,這個工程,但我迷失在如何翻譯座標點/ plotsymbol到座標,所以我知道什麼時候翻轉一個點並顯示標籤。
有人有想法嗎? 謝謝沿着這些線路的所有
我正在用Core-Plot製作一個漂亮圖形的mac osx應用程序。它的一個折線圖(scatterplot)上有多個點,可以用一個plotsymbol圈顯示出來。 我的目標是在用戶將鼠標懸停在圖表上的一個點上時顯示一個標籤,其中包含點的值。Core-Plot Mac:在圖中的鼠標懸停點顯示標籤
我已經添加了NSTracking到圖表,這個工程,但我迷失在如何翻譯座標點/ plotsymbol到座標,所以我知道什麼時候翻轉一個點並顯示標籤。
有人有想法嗎? 謝謝沿着這些線路的所有
我的解決辦法是什麼:
(我假設圖不顯示任何標籤,只有當鼠標在圖表上的一個點被顯示的標籤。)
在你處理鼠標邏輯的地方,你會怎麼做:
NSDecimalNumber *tickLocation = [NSDecimalNumber numberWithDouble:"The relevant axis value of the object you have the mouse over"];
NSString *labelText = @"The text of the label";
NSMutableArray *customLabels = [NSMutableArray arrayWithCapacity:1];
CPTAxisLabel *label = [[CPTAxisLabel alloc] initWithText: labelText textStyle:axisSet."Whatever axis you want -X/Y".labelTextStyle];
label.tickLocation = [tickLocation decimalValue];
label.offset = axisSet."Whatever axis you want -X/Y".labelOffset + axisSet."Whatever axis you want -X/Y".majorTickLength;
label.rotation = M_PI/4;
[customLabels addObject:label];
axisSet."Whatever axis you want -X/Y".axisLabels = [NSSet setWithArray:customLabels];
希望這有助於。
您可以使用-indexOfVisiblePointClosestToPlotAreaPoint:
方法找出哪個圖形符號最接近某個像素。此方法返回該點的數據源索引;您可以查看數據源提供的原始數據以獲取實際值。 plotSymbolMarginForHitDetection
屬性控制點註冊爲點擊之前該點必須與給定點有多接近。