【发布时间】:2011-02-08 10:18:41
【问题描述】:
我想在 iphone 上使用 coreplot 绘制一个 XY 图,x 轴为日期,y 轴为一些值。参考与 coreplot SDK 一起提供的 DatePlot 示例,我能够在 x 轴上按月绘制带有日期的图表(即 x 范围从一个月的 1 个日期到最后一个日期)。现在我想要一个年度规模,即我想在 x 轴上显示所有月份名称(Jan、Feb、Mar 等),并将我的刻度间隔显示为一个月时间。
我使用以下代码来显示每月的值
oneXUnit = 60 * 60 * 24;
x.majorIntervalLength = CPDecimalFromFloat((float) oneXUnit);
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init]autorelease];
NSString *dateString = @"0";
[dateFormatter setDateFormat:@"MM"];
CPTimeFormatter *timeFormatter = [[CPTimeFormatter alloc]initWithDateFormatter:dateFormatter];
timeFormatter.referenceDate = [dateFormatter dateFromString:dateString];
x.labelFormatter = timeFormatter;
现在对于年度模式,x 刻度间隔需要为一个月。我尝试了下面的代码,但没有工作
oneXUnit = 60 * 60 * 24 * 30;
x.majorIntervalLength = CPDecimalFromFloat((float) oneXUnit);
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init]autorelease];
NSString *dateString = @"Jan";
[dateFormatter setDateFormat:@"MMM"];
CPTimeFormatter *timeFormatter = [[CPTimeFormatter alloc]initWithDateFormatter:dateFormatter];
timeFormatter.referenceDate = [dateFormatter dateFromString:dateString];
x.labelFormatter = timeFormatter;
我认为这个逻辑失败了,因为每个月的天数不同。现在月份在 x 轴上显示,但它显示为
1 月、3 月、4 月、5 月、5 月、6 月、7 月、8 月、9 月、10 月、11 月、12 月。
您可以看到没有 2 月,而 5 月有 2 个条目。我的刻度间隔如何与每个月的天数相关。有什么解决办法吗? 感谢和问候,
【问题讨论】: