核心图不显示x轴下方的任何数据

时间:2014-03-18 19:48:01

标签: objective-c core-plot

我正在使用核心图来制作这个散点图。有没有办法让我的图表中的所有点都显示在x轴上方?我的图表中没有负值。我的图表中的所有值都是从60.00到64.00。现在我的图表看起来像这样

enter image description here

但有没有办法可以确保在x轴下方和y轴左侧没有显示数据点。

2 个答案:

答案 0 :(得分:0)

如果您确切知道点的位置,则可以设置轴的 orthogonalCoordinateDecimal 值,以便在第一个象限内找到所有点。此代码取自Plot_Gallery_iOS示例项目中的DatePlot.m:

//Found in renderInLayer
CPTXYAxisSet *axisSet = (CPTXYAxisSet *)graph.axisSet;
CPTXYAxis *x          = axisSet.xAxis;
x.majorIntervalLength         = CPTDecimalFromFloat(oneDay);

/* Change the 2.0 to another value and the x axis will intersect the y axis at y = newVal*/
x.orthogonalCoordinateDecimal = CPTDecimalFromDouble(newVal);

CPTXYAxis *y = axisSet.yAxis;
y.majorIntervalLength         = CPTDecimalFromDouble(0.5);
y.minorTicksPerInterval       = 5;

/* Change the oneDay to another value and the y axis will intersect the x axis at x = newVal*/
y.orthogonalCoordinateDecimal = CPTDecimalFromFloat(oneDay); //oneDay * 2

如果您获得动态数据,可以随时更新。只需参考您需要的轴(图形 - > axisSet - > x / y轴),然后使用新值更新它。

答案 1 :(得分:0)

设置垂直绘图范围,使其从0开始,而不是数据集中的最低值:

...
CPTPlotRange *plotRange = [CPTPlotRange plotRangeWithLocation: CPTDecimalFromDouble(0)
                                                       length: CPTDecimalFromDouble(maxValue)];
plotSpace.globalYRange = plotRange;
plotSpace.yRange = plotRange;
...

maxValue是数据集中的最大值。