2012-02-22 76 views
0

我有一個iPhone應用程序中的核心繪圖圖形,並希望限制x軸上的標籤數量。目前,我正在使用CPTLabelingPolicyNone並在x軸上顯示NSDates(顯示如下:Jan 2)而沒有問題,除了事實上一旦有超過10個條目,它們就會開始相互重疊。我真的希望在x軸上最多有7或8個條目。核心繪圖x軸標籤重疊/ CPTLabellingPolicyAutomatic不會顯示日期

我讀過,我可以使用CPTAxisLabelingPolicyAutomatic並將preferredNumberOfTicks設置爲我想要的。問題是,當我這樣做時,我不再在我的X軸上獲取日期,我得到像0.0,0.1等十進制數字。我不是這方面的專家,所以我不確定爲什麼我我再也沒有得到日期。任何人都可以對此有所瞭解?

謝謝。

回答

1

使用CPTTimeFormatter

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
dateFormatter.dateStyle = kCFDateFormatterShortStyle; 
CPTTimeFormatter *timeFormatter = [[[CPTTimeFormatter alloc] initWithDateFormatter:dateFormatter] autorelease]; 
timeFormatter.referenceDate = refDate; 
axis.labelFormatter = timeFormatter; 

幾個核心繪圖示例應用程序演示該功能包括情節畫廊和DatePlot。

+0

感謝您的幫助。我看了一下這些項目,看看timeFormatter在哪裏使用,但是,我仍然不確定如何在我的情況下實現它。用戶在不同日期進行輸入,可能相隔一週或相隔一個月。如何使用CPTTimeFormatter爲我的圖表提供正確的日期條目?我現在沒有使用timeFormatter,但我想我必須使用它來使用自動標記策略? – Jamie 2012-02-23 00:40:19

+0

如果日期範圍足夠變化爲數天,數週或數月,則自動標記可能無法很好地工作。它不知道軸上的值被視爲日期。如果您始終將值設置爲天(而不是幾周和/或幾個月),則可能會好。如果您要切換不同範圍的標籤格式,自動標籤可能不會在您想要的位置。 – 2012-02-23 04:09:45

+0

非常感謝埃裏克。最後,我寫了一個算法來計算應該在劇情上貼多少標籤。由於我沒有放大或縮小,它似乎運作良好。感謝幫助。 – Jamie 2012-02-23 07:08:22