ios核心图 - 散点图圆与x,y轴重叠

时间:2013-12-16 22:54:02

标签: ios core-plot scatter-plot

我目前正在使用Scatter Plot of Core Plot绘制某些​​数据。圆的大小取决于特定值的出现频率。在绘图时,我发现一些圆圈重叠并穿过x和y轴。

是否有任何方法可以检查圆(即绘图点)是否穿过轴并自动调整圆的大小以使其不会穿过轴?

编辑 - 轴是固定的。所以我不能改变轴。

编辑 - 我想知道使用哪种方法来确定圆是否穿过/接触x轴或y轴。目前,如果圆的大小为12且其y坐标为1.1,则圆重叠。我无法理解大小如何映射到绘图上的圆圈。谢谢。

2 个答案:

答案 0 :(得分:0)

没有。解决这个问题的最简单方法是弄清楚最大圆圈的大小,并调整绘图空间上的绘图范围,以便在极端数据点(最小和最大)与轴或其他边缘之间留出至少那么大的空间情节空间。绘图空间具有在绘图区域图层的坐标空间中在数据坐标和像素之间来回转换的方法。

点转换方法是:

(绘图区数据)

-(CGPoint)plotAreaViewPointForPlotPoint:(NSDecimal *)plotPoint
                    numberOfCoordinates:(NSUInteger)count;
-(CGPoint)plotAreaViewPointForDoublePrecisionPlotPoint:(double *)plotPoint
                                   numberOfCoordinates:(NSUInteger)count;

(绘制区域到数据)

-(void)plotPoint:(NSDecimal *)plotPoint numberOfCoordinates:(NSUInteger)count
                                       forPlotAreaViewPoint:(CGPoint)point;
-(void)doublePrecisionPlotPoint:(double *)plotPoint
            numberOfCoordinates:(NSUInteger)count
           forPlotAreaViewPoint:(CGPoint)point;

根据您的应用程序,您可以使用-expandRangeByFactor:通过简单因子扩展绘图范围。您可以通过将绘图区域的宽度加上圆直径除以绘图区域的宽度来找到xRange的因子。使用绘图区域的高度对yRange进行类似的计算。

答案 1 :(得分:0)

也许您可以检查直径的一半是否大于图的x和y值。如果它更大,则将直径减小到x和y中较小的两倍。