我正在使用“Core-Plot”绘制图表。当我使用以下代码的x轴时,它工作正常。
axisSet.xAxis.titleTextStyle = textStyle;
axisSet.xAxis.titleOffset = 2.0f;
axisSet.xAxis.axisLineStyle = axisLineStyle;
axisSet.xAxis.majorTickLineStyle = axisLineStyle;
axisSet.xAxis.minorTickLineStyle = axisLineStyle;
axisSet.xAxis.labelTextStyle = textStyle;
axisSet.xAxis.labelOffset = 0.0f;
axisSet.xAxis.minorTicksPerInterval = 1;
axisSet.xAxis.minorTickLength = 0.0f;
axisSet.xAxis.majorTickLength = 5.0f;
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0.0f) length:CPTDecimalFromFloat(7.0f)];
axisSet.xAxis.majorIntervalLength = CPTDecimalFromFloat(1.0f);
但是当我使用这样的代码时:
// --------------------------------------------- -----------------------------
NSArray *arr;
NSString *month;
NSString *days;
NSDateFormatter *format=[[NSDateFormatter alloc]init];
[format setDateFormat:@"yyyy/MM/dd"];
NSDate *day=[NSDate date];
NSDate *week = [day dateByAddingTimeInterval: -604800.0];
NSDate *day1 = [NSDate dateWithTimeInterval:(24*60*60) sinceDate:week];
NSDate *day2 = [NSDate dateWithTimeInterval:(24*60*60) sinceDate:day1];
NSDate *day3 = [NSDate dateWithTimeInterval:(24*60*60) sinceDate:day2];
NSDate *day4 = [NSDate dateWithTimeInterval:(24*60*60) sinceDate:day3];
NSDate *day5 = [NSDate dateWithTimeInterval:(24*60*60) sinceDate:day4];
NSDate *day6 = [NSDate dateWithTimeInterval:(24*60*60) sinceDate:day5];
NSDate *today = [NSDate dateWithTimeInterval:(24*60*60) sinceDate:day6];
NSString *str1 =[format stringFromDate:day1];
arr=[str1 componentsSeparatedByString:@"/"];
month=[arr objectAtIndex:1];
days=[arr objectAtIndex:2];
str1=[days stringByAppendingFormat:@":%@",month];
NSString *str2 =[format stringFromDate:day2];
arr=[str2 componentsSeparatedByString:@"/"];
month=[arr objectAtIndex:1];
days=[arr objectAtIndex:2];
str2=[days stringByAppendingFormat:@":%@",month];
NSString *str3 =[format stringFromDate:day3];
arr=[str3 componentsSeparatedByString:@"/"];
month=[arr objectAtIndex:1];
days=[arr objectAtIndex:2];
str3=[days stringByAppendingFormat:@":%@",month];
NSString *str4 =[format stringFromDate:day4];
arr=[str4 componentsSeparatedByString:@"/"];
month=[arr objectAtIndex:1];
days=[arr objectAtIndex:2];
str4=[days stringByAppendingFormat:@":%@",month];
NSString *str5 =[format stringFromDate:day5];
arr=[str5 componentsSeparatedByString:@"/"];
month=[arr objectAtIndex:1];
days=[arr objectAtIndex:2];
str5=[days stringByAppendingFormat:@":%@",month];
NSString *str6 =[format stringFromDate:day6];
arr=[str6 componentsSeparatedByString:@"/"];
month=[arr objectAtIndex:1];
days=[arr objectAtIndex:2];
str6=[days stringByAppendingFormat:@":%@",month];
NSString *str7 =[format stringFromDate:today];
arr=[str7 componentsSeparatedByString:@"/"];
month=[arr objectAtIndex:1];
days=[arr objectAtIndex:2];
str7=[days stringByAppendingFormat:@":%@",month];
//--------------------------------------------------------------------------------
axisSet.xAxis.title=@"-----One Week----->";
axisSet.xAxis.titleTextStyle =textStyle;
axisSet.xAxis.titleOffset = 10.0f;
axisSet.xAxis.axisLineStyle = axisLineStyle;
axisSet.xAxis.labelTextStyle = mtextStyle;
axisSet.xAxis.labelOffset = 0.0f;
axisSet.xAxis.majorTickLength = 1.0f;
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0) length:CPTDecimalFromFloat(7)];
axisSet.xAxis.majorIntervalLength = CPTDecimalFromFloat(1.0f);
//--------------labeling X-axis------------------------------------------
axisSet.xAxis.labelRotation = M_PI/4;
axisSet.xAxis.labelingPolicy = CPTAxisLabelingPolicyNone;
NSArray *customTickLocations = [NSArray arrayWithObjects:
[NSDecimalNumber numberWithInt:1],
[NSDecimalNumber numberWithInt:2],
[NSDecimalNumber numberWithInt:3],
[NSDecimalNumber numberWithInt:4],
[NSDecimalNumber numberWithInt:5],
[NSDecimalNumber numberWithInt:6],
[NSDecimalNumber numberWithInt:7],nil];
NSArray *xAxisLabels = [NSArray arrayWithObjects:str1,str2,str3,str4,str5,str6,str7,nil];
NSUInteger labelLocation = 0;
NSMutableArray *customLabels = [NSMutableArray arrayWithCapacity:[xAxisLabels count]];
for (NSNumber *tickLocation in customTickLocations)
{
CPTAxisLabel *newLabel = [[CPTAxisLabel alloc] initWithText: [xAxisLabels objectAtIndex:labelLocation++] textStyle:axisSet.xAxis.labelTextStyle];
newLabel.tickLocation = [tickLocation decimalValue];
newLabel.offset = axisSet.xAxis.labelOffset + axisSet.xAxis.majorTickLength;
[customLabels addObject:newLabel];
[newLabel release];
}
axisSet.xAxis.axisLabels = [NSSet setWithArray:customLabels];
//---------------------------------------------------------------------------
然后在x轴disaapears上打勾。我到处搜索但无法找到相关答案。所以,如果有人能做到,请告诉我。在此先感谢!!
答案 0 :(得分:0)
CPTAxisLabelingPolicyNone
标签政策要求您单独提供刻度线位置。这样可以最大限度地提高标签的灵活性 - 您不必标记每个刻度线,也可以在没有刻度线的位置放置标签。
axisSet.xAxis.majorTickLocations = [NSSet setWithArray:customTickLocations];
如果您需要次要刻度,则还需要设置minorTickLocations
。