我目前正在使用Scatter Plot of Core Plot绘制某些数据。圆的大小取决于特定值的出现频率。在绘图时,我发现一些圆圈重叠并穿过x和y轴。
是否有任何方法可以检查圆(即绘图点)是否穿过轴并自动调整圆的大小以使其不会穿过轴?
编辑 - 轴是固定的。所以我不能改变轴。
编辑 - 我想知道使用哪种方法来确定圆是否穿过/接触x轴或y轴。目前,如果圆的大小为12且其y坐标为1.1,则圆重叠。我无法理解大小如何映射到绘图上的圆圈。谢谢。
答案 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中较小的两倍。