我正在使用Core-Plot来显示温度值。这样可以正常工作,但有一个例外:没有为轴显示标题,也没有标记标记。
下面你会找到我正在使用的代码。我正在使用最新版本的CorePlot-CocoaTouch。任何帮助都非常感谢!提前谢谢。
注意:基本上,我在this SO question中遇到了同样的问题,但从项目中删除/添加CorePlot并没有解决我的问题。
编辑:我使用了存储库中的最新版本。改为1.0(下载),它就像一个魅力。
CPTXYGraph *graph = [[CPTXYGraph alloc] initWithFrame:CGRectZero];
graphHostingView.collapsesLayers = NO;
graphHostingView.hostedGraph = graph;
graph.paddingLeft = 10.0;
graph.paddingTop = 10.0;
graph.paddingRight = 10.0;
graph.paddingBottom = 10.0;
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace;
plotSpace.allowsUserInteraction = YES;
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0.0) length:CPTDecimalFromFloat(500.0)];
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0.0) length:CPTDecimalFromFloat(40.0)];
CPTXYAxisSet *axisSet = (CPTXYAxisSet *)graph.axisSet;
CPTXYAxis *x = axisSet.xAxis;
x.title = @"Date";
x.majorIntervalLength = CPTDecimalFromString(@"280");
x.orthogonalCoordinateDecimal = CPTDecimalFromString(@"0");
x.minorTicksPerInterval = 4;
CPTXYAxis *y = axisSet.yAxis;
y.title = @"Temperature";
y.majorIntervalLength = CPTDecimalFromString(@"10");
y.orthogonalCoordinateDecimal = CPTDecimalFromString(@"0");
y.minorTicksPerInterval = 2;
CPTScatterPlot *temperaturePlot = [[CPTScatterPlot alloc] init];
temperaturePlot.interpolation = CPTScatterPlotInterpolationCurved;
temperaturePlot.dataSource = self;
[graph addPlot:temperaturePlot];
编辑:向plotArea添加填充没有帮助,如下面的屏幕截图所示。
答案 0 :(得分:0)
您需要在绘图区域框架中添加一些填充,以便为标签腾出空间。
graph.plotAreaFrame.paddingLeft = 70.0;
graph.plotAreaFrame.paddingTop = 20.0;
graph.plotAreaFrame.paddingRight = 20.0;
graph.plotAreaFrame.paddingBottom = 80.0;
答案 1 :(得分:0)
尝试将带有一些自定义标签文本样式的labelTextStyle属性添加到轴。
axisSet.xAxis.labelTextStyle = LabelStyle;
LabelStyle是CPTMutableTextStyle
的对象。
答案 2 :(得分:0)
此问题尚未解决,我已将其转发至官方问题列表(core-plot issue)。目前,我已切换回1.0版本,该版本按预期工作。