繁体   English   中英

核心图:使用scaleToFitPlots时未绘制x轴标签

[英]Core Plot: x-axis labels not plotted when using scaleToFitPlots

问题:在使用自动缩放时,我无法让Core Plot(1.1)为我的x轴绘制自动标签( [plotSpace scaleToFitPlots:[graph allPlots] )。

我尝试过:我更改了偏移和填充的值,但这并没有改变结果。 但是,当关闭自动缩放(不使用[plotSpace scaleToFitPlots:[graph allPlots]]并自动设置y标度时, x轴的自动标记有效。

问题 :Core Plot中是否有错误或者我做错了什么? 我将不胜感激任何帮助!

谢谢!

这就是我设置图表的方式:

CPTBarPlot *barPlot = [CPTBarPlot 
   tubularBarPlotWithColor:[CPTColor blueColor] horizontalBars:NO];
barPlot.baseValue       = CPTDecimalFromInt(0);
barPlot.barOffset       = CPTDecimalFromFloat(0.0f); // CPTDecimalFromFloat(0.5f);
barPlot.barWidth        = CPTDecimalFromFloat(0.4f);
barPlot.barCornerRadius = 4;
barPlot.labelOffset = 5;
barPlot.dataSource      = self;
barPlot.delegate        = self;

graph = [[CPTXYGraph alloc]initWithFrame:self.view.bounds];
   self.hostView.hostedGraph = graph;

graph.paddingLeft   = 40.0f;
graph.paddingTop    = 30.0f;
graph.paddingRight  = 30.0f;
graph.paddingBottom = 50.0f;

[graph addPlot:barPlot];

graph.plotAreaFrame.masksToBorder = NO;
graph.plotAreaFrame.cornerRadius  = 0.0f;
graph.plotAreaFrame.borderLineStyle = borderLineStyle;

double xAxisStart = 0;
CPTXYAxisSet *xyAxisSet = (CPTXYAxisSet *)graph.axisSet;
CPTXYAxis *xAxis = xyAxisSet.xAxis;
CPTMutableLineStyle *lineStyle = [xAxis.axisLineStyle mutableCopy];
lineStyle.lineCap = kCGLineCapButt;
xAxis.axisLineStyle = lineStyle;
xAxis.majorTickLength = 10;
xAxis.orthogonalCoordinateDecimal   = CPTDecimalFromDouble(yAxisStart);
xAxis.paddingBottom = 5;

xyAxisSet.delegate = self;
xAxis.delegate = self;
xAxis.labelOffset = 0;

xAxis.labelingPolicy = CPTAxisLabelingPolicyAutomatic;

[plotSpace scaleToFitPlots:[graph allPlots]];

CPTMutablePlotRange *yRange = plotSpace.yRange.mutableCopy;
[yRange expandRangeByFactor:CPTDecimalFromDouble(1.3)];
plotSpace.yRange = yRange;
NSInteger xLength = CPTDecimalIntegerValue(plotSpace.xRange.length) + 1;

plotSpace.xRange = [CPTPlotRange
plotRangeWithLocation:CPTDecimalFromDouble(xAxisStart) 
   length:CPTDecimalFromDouble(xLength)] ;

编辑

Eric的回答有所帮助。 现在绘制了x标签,但是在错误的y位置(偏移)。 如何在x轴下方绘制它们(请参阅下面的屏幕截图): 在此输入图像描述在此输入图像描述 )。

谢谢!

缩放绘图空间后,为轴设置orthogonalCoordinateDecimal 只是一个猜测,但用于定位x轴的yAxisStart值可能超出了缩放范围。

我有同样的问题,并通过添加另一个lineWidth:0.0和clearColor at(x,y)值(-1,-1)的图来修补它。 scaleToFit包含此图并显示我的标签和轴。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM