有没有人能告诉我如何在核心情节中绘制填充不同颜色的区域图?我不想用x或y坐标填充颜色?我只想根据阵列中给出的点填充颜色?我需要你的帮助。我刚刚在这里打了3-4天?我的代码在这里。
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)self.graph.defaultPlotSpace;
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInt(0) length:CPTDecimalFromInt( 200)];
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInt(0) length:CPTDecimalFromInt(7)];
plotSpace.allowsUserInteraction=YES;
plotSpace.globalXRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInt(0) length:CPTDecimalFromInt([dates count]+3)];
plotSpace.delegate = self;
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInt(0)
length:CPTDecimalFromInt(200)];
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInt(-1)length:CPTDecimalFromInt(7)];
CPTXYAxisSet *axisSet = (CPTXYAxisSet *)self.graph.axisSet;
NSSet *majorTickLocations = [NSSet setWithObjects:
[NSDecimalNumber numberWithUnsignedInteger:1],
[NSDecimalNumber numberWithUnsignedInteger:2],
[NSDecimalNumber numberWithUnsignedInteger:3],
[NSDecimalNumber numberWithUnsignedInteger:4],
[NSDecimalNumber numberWithUnsignedInteger:5],
[NSDecimalNumber numberWithUnsignedInteger:6],
[NSDecimalNumber numberWithUnsignedInteger:7],
nil];
CPTXYAxis *x = axisSet.xAxis;
x.orthogonalCoordinateDecimal = CPTDecimalFromInt(-1);
x.majorIntervalLength = CPTDecimalFromInt(1);//majorIntervalLength defines the number of units between “big” ticks on the axis. In this case it’s set to show one every 10 units.
x.minorTicksPerInterval = 0;
x.labelingPolicy = CPTAxisLabelingPolicyNone;
x.axisConstraints = [CPTConstraints constraintWithLowerOffset:01.0];
x.majorTickLocations = majorTickLocations;
axisSet.xAxis.labelRotation = M_PI/4;
axisSet.xAxis.labelingPolicy = CPTAxisLabelingPolicyNone;
int labelLocations = 1;
NSMutableArray *customXLabels = [NSMutableArray array];
for (NSString *day in dates)
{
CPTAxisLabel *newLabel = [[CPTAxisLabel alloc] initWithText:day textStyle:x.labelTextStyle];
newLabel.tickLocation = [[NSNumber numberWithInt:labelLocations] decimalValue];
newLabel.offset =x.labelOffset;// + x.majorTickLength;
newLabel.rotation = M_PI / 4;
[customXLabels addObject:newLabel];
labelLocations++;
[newLabel release];
}
x.title = @"Data For X-Axis";
x.titleTextStyle = textStyle;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
x.titleOffset = 35.0f;
}
else
x.titleOffset = 100.0f;
x.axisLabels = [NSSet setWithArray:customXLabels];
x.axisLineStyle=lineStyle;
x.majorTickLineStyle=lineStyle;
x.minorTickLineStyle=lineStyle;
x.labelTextStyle = textStyle;
CPTXYAxis *y = axisSet.yAxis;
y.title = @"Data For Y-Axis";
y.titleTextStyle = textStyle;
y.titleOffset = 20.0f;
y.axisLineStyle = lineStyle;
y.majorTickLineStyle = lineStyle;
y.minorTickLineStyle = lineStyle;
y.labelTextStyle = textStyle;
y.labelOffset = 1.0f;
y.majorIntervalLength = CPTDecimalFromFloat(10.0f);
y.minorTicksPerInterval = 1;
y.minorTickLength = 2.0f;
y.majorTickLength = 5.0f;
CPTMutableLineStyle *majorGridLineStyle = [CPTMutableLineStyle lineStyle];
majorGridLineStyle.lineWidth = 1.5f;
majorGridLineStyle.lineColor = [CPTColor lightGrayColor]; //[[CPTColor lightGrayColor] colorWithAlphaComponent:0.6f];
y.majorGridLineStyle = majorGridLineStyle;
x.orthogonalCoordinateDecimal = CPTDecimalFromString(@"0");
CPTScatterPlot *plot = [[[CPTScatterPlot alloc] init] autorelease];
CPTColor *aaplColor = [CPTColor greenColor];
plot.dataSource = self;
plot.identifier = @"SYS";
plot.dataLineStyle = lineStyle;
plot.plotSymbol = plotSymbol;
[self.graph addPlot:plot toPlotSpace:plotSpace];
CPTScatterPlot *googPlot = [[CPTScatterPlot alloc] init];
googPlot.dataSource = self;
googPlot.identifier = @"DIA";
CPTColor *googColor = [CPTColor redColor];
[self.graph addPlot:googPlot toPlotSpace:plotSpace];
CPTMutableLineStyle *aaplLineStyle = [plot.dataLineStyle mutableCopy];
aaplLineStyle.lineWidth = 1.5;
aaplLineStyle.lineColor = aaplColor;
plot.dataLineStyle = aaplLineStyle;
CPTMutableLineStyle *aaplSymbolLineStyle = [CPTMutableLineStyle lineStyle];
aaplSymbolLineStyle.lineColor = aaplColor;
CPTPlotSymbol *aaplSymbol = [CPTPlotSymbol rectanglePlotSymbol];
aaplSymbol.fill = [CPTFill fillWithColor:aaplColor];
aaplSymbol.lineStyle = aaplSymbolLineStyle;
aaplSymbol.size = CGSizeMake(6.0f, 6.0f);
plot.plotSymbol = aaplSymbol;
CPTMutableLineStyle *aaplLineStyle1 = [googPlot.dataLineStyle mutableCopy];
aaplLineStyle1.lineWidth = 1.5;
aaplLineStyle1.lineColor = googColor;
googPlot.dataLineStyle = aaplLineStyle1;
CPTMutableLineStyle *aaplSymbolLineStyle1 = [CPTMutableLineStyle lineStyle];
aaplSymbolLineStyle1.lineColor = googColor;
CPTPlotSymbol *aaplSymbol1 = [CPTPlotSymbol diamondPlotSymbol];
aaplSymbol1.fill = [CPTFill fillWithColor:googColor];
aaplSymbol1.lineStyle = aaplSymbolLineStyle1;
aaplSymbol1.size = CGSizeMake(6.0f, 6.0f);
googPlot.plotSymbol = aaplSymbol1;
CPTLegend *theLegend = [CPTLegend legendWithGraph:self.graph];
theLegend.numberOfRows = 1;
theLegend.fill = [CPTFill fillWithColor:[CPTColor colorWithGenericGray:.8]];
theLegend.cornerRadius = 2.0;
theLegend.swatchSize = CGSizeMake(8.0, 5.0);
theLegend.rowMargin = 5.0;
theLegend.paddingLeft = 5.0;
theLegend.paddingTop = 5.0;
theLegend.paddingRight = 5.0;
theLegend.paddingBottom = 5.0;
self.graph.legend = theLegend;
self.graph.legendAnchor = CPTRectAnchorTopLeft;
self.graph.legendDisplacement = CGPointMake(120.0, -2.0);
graph.plotAreaFrame.borderLineStyle = nil;
我正在使用核心情节框架..
答案 0 :(得分:1)
如果你想改变图表行上的点颜色,那么只需改变这行代码中的颜色
aaplSymbol1.fill = [CPTFill fillWithColor:googColor];
如果你想改变每个点的颜色不同,那么改变这一行中不同颜色的颜色
aaplSymbol1.fill = [CPTFill fillWithColor:googColor];
每个不同点。