我怎样才能画垂直线?
How can I draw vertical lines?
如何为每个日期画一条垂直线
y 轴很好,但为什么 x 轴不行?
x 轴代码:
CPTMutableLineStyle *majorGridLineStyle = [CPTMutableLineStyle lineStyle];
majorGridLineStyle.lineWidth = 2;
majorGridLineStyle.lineColor = [CPTColor redColor];
CPTXYAxisSet *axisSet = (CPTXYAxisSet *)graph.axisSet;
CPTXYAxis *x = [axisSet xAxis];
x.axisLineStyle = nil;
x.majorTickLineStyle = majorGridLineStyle;
[x setLabelingPolicy:CPTAxisLabelingPolicyNone];
x.majorGridLineStyle = majorGridLineStyle;
NSArray *subjectsArray = [self getSubjectTitlesAsArray];
[x setAxisLabels:[NSSet setWithArray:subjectsArray]];
y 轴代码:
CPTXYAxis *y = axisSet.yAxis;
y.axisLineStyle = nil;
y.majorTickLineStyle = nil;
y.minorTickLineStyle = nil;
y.majorIntervalLength = CPTDecimalFromString(@"500");
y.orthogonalCoordinateDecimal = CPTDecimalFromString(@"0");
y.majorGridLineStyle = gridLineStyle;
我的错误是什么?
Core Plot 将在主要刻度位置绘制网格线。确保日期值与刻度位置相对应,并且 gridLineStyle
是一种将在白色背景下显示的样式。
谢谢埃里克!
当然,还有一些更优雅的编码方式,但我是这样解决的:
NSMutableSet *xMajorLocations = [NSMutableSet set];
[xMajorLocations addObject:[NSNumber numberWithFloat:0.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:1.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:2.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:3.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:4.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:5.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:6.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:7.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:8.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:9.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:10.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:11.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:12.0f]];
x.majorTickLocations = xMajorLocations;
如何为每个日期画一条垂直线
y 轴很好,但为什么 x 轴不行?
x 轴代码:
CPTMutableLineStyle *majorGridLineStyle = [CPTMutableLineStyle lineStyle];
majorGridLineStyle.lineWidth = 2;
majorGridLineStyle.lineColor = [CPTColor redColor];
CPTXYAxisSet *axisSet = (CPTXYAxisSet *)graph.axisSet;
CPTXYAxis *x = [axisSet xAxis];
x.axisLineStyle = nil;
x.majorTickLineStyle = majorGridLineStyle;
[x setLabelingPolicy:CPTAxisLabelingPolicyNone];
x.majorGridLineStyle = majorGridLineStyle;
NSArray *subjectsArray = [self getSubjectTitlesAsArray];
[x setAxisLabels:[NSSet setWithArray:subjectsArray]];
y 轴代码:
CPTXYAxis *y = axisSet.yAxis;
y.axisLineStyle = nil;
y.majorTickLineStyle = nil;
y.minorTickLineStyle = nil;
y.majorIntervalLength = CPTDecimalFromString(@"500");
y.orthogonalCoordinateDecimal = CPTDecimalFromString(@"0");
y.majorGridLineStyle = gridLineStyle;
我的错误是什么?
Core Plot 将在主要刻度位置绘制网格线。确保日期值与刻度位置相对应,并且 gridLineStyle
是一种将在白色背景下显示的样式。
谢谢埃里克!
当然,还有一些更优雅的编码方式,但我是这样解决的:
NSMutableSet *xMajorLocations = [NSMutableSet set];
[xMajorLocations addObject:[NSNumber numberWithFloat:0.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:1.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:2.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:3.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:4.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:5.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:6.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:7.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:8.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:9.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:10.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:11.0f]];
[xMajorLocations addObject:[NSNumber numberWithFloat:12.0f]];
x.majorTickLocations = xMajorLocations;