I am plotting a graph using “Core-Plot”. When i use following code for x-axis then it works fine.
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);
But when i use code like this:
//————————————————————————–
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];
//---------------------------------------------------------------------------
Then tick marks on x-axis disaapears. I searched everywhere but unable to find relevant answer. So please if anyone can do it then tell me. Thanks in advance !!
The
CPTAxisLabelingPolicyNonelabeling policy requires you to provide the tick locations separately. This allows maximum flexibility in labeling—you don’t have to label every tick and you can place labels at locations that don’t have tick marks.If you want minor ticks, you’ll need to set the
minorTickLocations, too.