不要使用核心图显示条形图中的轴线

时间:2012-11-20 08:35:04

标签: iphone core-plot bar-chart

我不想在条形图视图中显示Axis线。我想只显示条形图如何删除Axis线?

这就是每当我运行应用程序时它显示XY轴,但我可以删除它不会显示Axis线。我无法添加图像所以我在这里添加了代码

在这里查看我的代码:

  - (void)generateData
  {
  NSMutableDictionary *dataTemp = [[NSMutableDictionary alloc] init];

   //Array containing all the dates that will be displayed on the X axis
   dates = [NSArray arrayWithObjects:@"A", @"B", @"C", 
         @"D", @"E", nil];

//Dictionary containing the name of the two sets and their associated color
//used for the demo
sets = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor], @"Plot 1", nil];

//Generate random data for each set of data that will be displayed for each day
//Numbers between 1 and 10
for (NSString *date in dates) {
    NSMutableDictionary *dict = [NSMutableDictionary dictionary];
    for (NSString *set in sets) {


        NSNumber *num = [NSNumber numberWithInt:arc4random_uniform(8)+1];


        [dict setObject:num forKey:set];
    }
    [dataTemp setObject:dict forKey:date];
}

data = [dataTemp copy];

NSLog(@"%@", data);
 }
- (void)generateLayout
{
//Create graph from theme
graph                               = [[CPTXYGraph alloc] initWithFrame:CGRectMake(0, 0, 320, 400)];
self.hostedGraph                    = graph;
/*graph.paddingLeft                   = 25.0;
graph.paddingTop                    = 10.0;
graph.paddingRight                  = 10.0;
graph.paddingBottom                 = 50.0;
*/

//Add plot space
CPTXYPlotSpace *plotSpace       = (CPTXYPlotSpace *)graph.defaultPlotSpace;
plotSpace.delegate              = self;
plotSpace.yRange                = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0) 
                                                               length:CPTDecimalFromFloat(10.0f)];
plotSpace.xRange                = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(-1.0f) 
                                                               length:CPTDecimalFromFloat(8.0f)];


//Create a bar line style
CPTMutableLineStyle *barLineStyle   = [[CPTMutableLineStyle alloc] init];
barLineStyle.lineWidth              = 1.0;
barLineStyle.lineColor              = [CPTColor whiteColor];
CPTMutableTextStyle *whiteTextStyle = [CPTMutableTextStyle textStyle];
whiteTextStyle.color                = [CPTColor whiteColor];





 //Plot
 BOOL firstPlot = YES;


for (NSString *set in [[sets allKeys] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]) {


    CPTBarPlot *plot        = [CPTBarPlot tubularBarPlotWithColor:[CPTColor blueColor] horizontalBars:NO];
   plot.lineStyle          = barLineStyle;
    CGColorRef color        = ((UIColor *)[sets objectForKey:set]).CGColor;
    plot.fill               = [CPTFill fillWithColor:[CPTColor colorWithCGColor:color]];
    if (firstPlot) {
        plot.barBasesVary   = NO;
        firstPlot           = NO;
    } else {
        plot.barBasesVary   = YES;
    }
    plot.barWidth           = CPTDecimalFromFloat(0.5f);
    plot.barOffset=CPTDecimalFromFloat(0.5f);
    plot.barsAreHorizontal  = NO;
    plot.dataSource         = self;
    plot.identifier         = set;
    [graph addPlot:plot toPlotSpace:plotSpace];

    [plotSpace scaleToFitPlots:[graph allPlots]];
}




//Add legend
CPTLegend *theLegend      = [CPTLegend legendWithGraph:graph];
theLegend.numberOfRows    = sets.count;
theLegend.fill            = [CPTFill fillWithColor:[CPTColor colorWithGenericGray:0.15]];
theLegend.borderLineStyle = barLineStyle;
theLegend.cornerRadius    = 10.0;
theLegend.swatchSize      = CGSizeMake(15.0, 15.0);
whiteTextStyle.fontSize   = 13.0;
theLegend.textStyle       = whiteTextStyle;
theLegend.rowMargin       = 5.0;
theLegend.paddingLeft     = 10.0;
theLegend.paddingTop      = 10.0;
theLegend.paddingRight    = 10.0;
theLegend.paddingBottom   = 10.0;
graph.legend              = theLegend;
graph.legendAnchor        = CPTRectAnchorTopLeft;
graph.legendDisplacement  = CGPointMake(80.0, -10.0);

}

 - (void)createGraph
{
//Generate data
[self generateData];


//Generate layout
[self generateLayout];
}



   #pragma mark - CPTPlotDataSource methods

  - (NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
{
return dates.count;
}

   - (double)doubleForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:  (NSUInteger)index
{


 double num = NAN;

//X Value
if (fieldEnum == 0) {
    num = index;
}

else {
    double offset =0;

    if (((CPTBarPlot *)plot).barBasesVary) {

        for (NSString *set in [[sets allKeys] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]) {

            if ([plot.identifier isEqual:set]) {

                break;
            }
            offset += [[[data objectForKey:[dates objectAtIndex:index]]  objectForKey:set] doubleValue];
        }
    }


    //Y Value
    if (fieldEnum == 1) {
        num = [[[data objectForKey:[dates objectAtIndex:index]]     objectForKey:plot.identifier] doubleValue] + offset;
    }


    //Offset for stacked bar
    else {
        num = offset;
    }
}

//NSLog(@"%@ - %d - %d - %f", plot.identifier, index, fieldEnum, num);

return num;
  }

  @end

1 个答案:

答案 0 :(得分:0)

使用[CPTLineStyle lineStyle]会产生细黑线。您还可以创建CPTMutableLineStyle并修改样式属性,包括颜色,宽度,线连接和虚线模式以自定义外观

也尝试使用这条波纹线

minorTickLineStyle属性设置为nil

有关详细信息,请参阅此链接

HighLevelDesignOverview

对于CPTLineStyle,您可以从此链接获取信息..

CPTLineStyle