2014-09-29 89 views
0

我一直在CorePlot.I上设置Y轴之间的间隔,但它看起来像重叠。 请检查下面的屏幕截图。这里是我的代码中设置Y轴情节如何在Coreplot中设置Y轴之间的空间

CGFloat yMax=55; 
    CGFloat yMin=50; 
    CGFloat yInterval=0; 
    yInterval=(yMax-yMin)/4; 

    CPTXYAxis *y = axisSet.yAxis; 
    y.axisLineStyle = axisLineStyle; 
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
    [formatter setMaximumFractionDigits:0]; 
    y.labelFormatter = formatter; 
    y.labelOffset = 2.0f; 
    y.labelAlignment = CPTAlignmentLeft; 
    y.labelTextStyle = axisTitleStyle; 
    y.tickDirection = CPTSignNegative; 
    y.majorTickLength = 3.0f; 
    y.majorIntervalLength = CPTDecimalFromDouble(yInterval); 
    y.majorGridLineStyle = gridLineStyle; 
    y.gridLinesRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInt(0) length:CPTDecimalFromInt(yMax)]; 
    y.minorTicksPerInterval = 1; 
    y.minorTickLength = 2.0f; 
    y.orthogonalCoordinateDecimal = CPTDecimalFromDouble(0.0); 
    axisSet.xAxis.orthogonalCoordinateDecimal = CPTDecimalFromDouble(yMin-yInterval); 

    CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *) graph.defaultPlotSpace; 
    plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0.0) length:CPTDecimalFromFloat(dateCount)]; 
    plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(yMin-yInterval) length:CPTDecimalFromFloat(yMax+yMin)]; 

请指导我如何Y轴之间的空间给点enter image description here

回答

1

张贴的截图是正确的。 y轴(yInterval)上的刻度线之间的间隔为(55 - 50)/ 4 = 1.25。 yRange的位置为50-1.25 = 48.75,长度为50 + 55 = 105.这意味着在105个单位或84个刻度和标签的空间中,每隔1.25个单位就有一个刻度标记。

+0

假设如果我增加长度,我可以看到每个y轴之间的空间吗? – 2014-09-30 07:16:10

+0

是的。也许你的意思是'yInterval =(yMax + yMin)/ 4;'?这将绘图范围的长度分为四部分。如果间隔恰好落在绘图区域的边缘,您将得到五个刻度线。 – 2014-09-30 11:28:56

+0

是埃里克但在我的情况下,我有最小值50和最大值55,所以现在我试图在这两个值之间的显示点。假设y开始0间隔20然后看起来很好,但它看起来在同一行中的所有点,所以我我尝试做计算像(yInterval =(yMax + yMin)/ 4;)但它看起来像重叠 – 2014-09-30 14:16:09

相关问题