核心绘图条形图滚动Xaxis

时间:2015-02-13 11:42:26

标签: ios objective-c graph core-plot

问题甚至是全局xrange的增加,条形图在小尺寸中可见。

请找到我使用的以下代码

   CGFloat xMin = 0.0f;
    CGFloat xMax = [[[GraphsDataHolder sharedInstance] getCompanywisedaySales] count]+0;
    CGFloat yMin = 0.0f;
    CGFloat yMax = 5000.0f;  // should determine dynamically based on max price
    CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *) graph.defaultPlotSpace;
    plotSpace.allowsUserInteraction = YES;
    plotSpace.delegate =self;
   // plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(xMin) length:CPTDecimalFromFloat(xMax)];
    plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(yMin) length:CPTDecimalFromFloat(yMax)];
    plotSpace.globalYRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInt(yMin) length:CPTDecimalFromInt(yMax)];

    plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInt(xMin)length:CPTDecimalFromInt(xMax)];
    plotSpace.globalXRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInt(xMin) length:CPTDecimalFromInt(xMax+2)];

请找到截屏 现在我的屏幕显示如下enter image description here

需要获取以下图片enter image description here

1 个答案:

答案 0 :(得分:0)

这是我的代码。它对我来说很好。

-(void)callingRevenueGraph
{
    graph1 = [[CPTXYGraph alloc] initWithFrame:CGRectMake(10,120,850,120)];

graph1.backgroundColor = (__bridge CGColorRef)([UIColor clearColor]);
graph1.paddingTop = 15.0;
graph1.paddingRight = 15.0;
graph1.paddingBottom = 20.0;
graph1.paddingLeft = 20.0;
graph1.borderColor = (__bridge CGColorRef)([CPTColor redColor]);
_revenueHostingView.hostedGraph = graph1;
maximum = [[revenueValuesArray objectAtIndex:0]intValue];
for(int max = 0;max<[revenueValuesArray count];max++)
{
    if(maximum < [[revenueValuesArray objectAtIndex:max]intValue])
        maximum = [[revenueValuesArray objectAtIndex:max]intValue];
}
NSLog(@"maximum value is %d",maximum);
if((maximum>=0) &&(maximum<10))
{
    intervalLength = 50;
}
else if((maximum>=10) &&(maximum<150))
{
    intervalLength = 75;
}
else if((maximum>=150) &&(maximum<500))
{
    intervalLength = 150;
}
else if((maximum>=500) &&(maximum<1500))
{
    intervalLength = 1000;
}
else if((maximum>=1500) &&(maximum<5000))
{
    intervalLength = 2500;
}
else if((maximum>=5000) &&(maximum<100000000))
{
    intervalLength = 5000;
}

double yAxisStart;


    if (intervalLength>0 && intervalLength <200) {
        yAxisStart = -50.0;
    }
    else if (intervalLength>=200 && intervalLength < 500)
        yAxisStart = -150;
    else
        yAxisStart = -550.0;


double yAxisLength =maximum;

CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)graph1.defaultPlotSpace;
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(-2)
                                                length:CPTDecimalFromFloat(33.5)];

plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(yAxisStart)
                                                length:CPTDecimalFromDouble(yAxisLength+200)];

CPTXYAxisSet *axisSet = (CPTXYAxisSet *)graph1.axisSet;


NSNumberFormatter *Xformatter = [[NSNumberFormatter alloc] init];
[Xformatter setGeneratesDecimalNumbers:NO];
[Xformatter setNumberStyle:NSNumberFormatterDecimalStyle];
axisSet.xAxis.labelFormatter = Xformatter;
axisSet.xAxis.title = @"Days";
axisSet.xAxis.titleLocation = CPTDecimalFromFloat(10);
axisSet.xAxis.titleOffset = 15.0;
//axisSet.hidden = YES;
axisSet.yAxis.majorIntervalLength = CPTDecimalFromFloat(intervalLength);
axisSet.yAxis.minorTicksPerInterval = 1;
axisSet.yAxis.title = [NSString stringWithFormat:@"Amount(%@)", currencyClicked];
axisSet.yAxis.titleLocation = CPTDecimalFromFloat(30);
axisSet.yAxis.titleOffset = 30.0;
axisSet.xAxis.visibleRange =  [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInteger(0) length:CPTDecimalFromInteger(31)];
axisSet.yAxis.visibleRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInteger(0) length:CPTDecimalFromInteger(2000)];

CPTBarPlot *plot = [[CPTBarPlot alloc] initWithFrame:CGRectZero];

plot.identifier = @"Bar";
plot.dataSource=self;
plot.delegate=self;
plot.barOffset = CPTDecimalFromFloat(0);
plot.barWidth = CPTDecimalFromDouble(0.5);

plot.shadowRadius = 1;
plot.shadowOffset = CGSizeMake(1,-1);
plot.shadowOpacity = 0.8;


plot.fill = [CPTFill fillWithColor:[CPTColor greenColor]];
axisSet.xAxis.majorIntervalLength = CPTDecimalFromFloat(1.0);


CPTMutableLineStyle *lineStyle = [CPTMutableLineStyle lineStyle];

lineStyle.miterLimit =1.0f;
lineStyle.lineWidth = 2.5f;
lineStyle.lineColor = [CPTColor greenColor];
plot.lineStyle = lineStyle;
}

根据您的要求,您可以设置barwidth = 1

相关问题