2012-02-22 69 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