Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用YLow和YHigh通过动态值绘制y轴_Ios_Objective C_Ipad_Core Plot - Fatal编程技术网

Ios 如何使用YLow和YHigh通过动态值绘制y轴

Ios 如何使用YLow和YHigh通过动态值绘制y轴,ios,objective-c,ipad,core-plot,Ios,Objective C,Ipad,Core Plot,我正在使用核心绘图库绘制图形。我总是得到y轴的动态值,然后从结果集中计算Ymin和Ymax。Ymax-Ymin之间的差异可能非常低,也可能非常高。我想在这些值之间创建动态间隔。如果差值较小,则主间隔应较小;如果差值较大,则主间隔应较大。我无法设置preferredNumberOfMajorTicks静态值,因为值可能会有所不同。代码应该适用于所有情况。请用一些代码示例指导我 @Eric感谢您的回复。我尝试了两种解决方案。首先是一个CpTaxisLabelingPolicyEqualdivisio

我正在使用核心绘图库绘制图形。我总是得到y轴的动态值,然后从结果集中计算Ymin和Ymax。Ymax-Ymin之间的差异可能非常低,也可能非常高。我想在这些值之间创建动态间隔。如果差值较小,则主间隔应较小;如果差值较大,则主间隔应较大。我无法设置preferredNumberOfMajorTicks静态值,因为值可能会有所不同。代码应该适用于所有情况。请用一些代码示例指导我

@Eric感谢您的回复。我尝试了两种解决方案。首先是一个CpTaxisLabelingPolicyEqualdivisions,但它总是将范围划分为一个区间,比如说,如果yMax和yMin分别为128.5和123.2,那么一个区间看起来不错,但是如果值为5550-100,那么它也只显示了一个值相差如此之大的区间。其次,我尝试了CPTAxisLabelingPolicyFixedInterval并通过将长度除以不同的间隔数来计算主要间隔长度,它可以正常工作,但我不想保持间隔值不变。如果我将长度除以4,则它将始终创建4个间隔,即使对于非常低的值,例如4.5和3.5。如果有任何方法可以通过yMax和yMin计算间隔数,请您指导我好吗?

尝试CPTaxisLabelingPolicy自动轴标记策略。这将在刻度和标签的打印范围内选择合适的间隔。您可以使用CPTAxisLabelingPolicyEqualDivisions标记策略始终将打印范围划分为相等的部分,尽管无法保证勾号将处于启用状态
价值观不错。如果您想获得最大的控制权,请坚持使用默认的标签策略CPTAxisLabelingPolicyFixedInterval。将绘图范围Ymax Ymin的长度除以所需的间隔数,以计算主间隔长度

我在回答部分添加了我的评论,因为我在这里无法评论太久,我还有一个查询。我想在每个值中添加%后缀,我使用的是NSNumberFormatter*labelFormatter=[[NSNumberFormatter alloc]init];labelFormatter setPositiveSuffix:@%];axisSet.yAxis.labelFormatter=labelFormatter;但它正在将浮点值转换为整数。如果实际值为0.4和0.9,则显示的是0%和1%,而不是0.4%和0.9%。你能帮我做到这一点吗?看看这个。使用最小和最大分数位数控制小数点后的位数。谢谢Eric将尝试此解决方案。对于我上一个绘制动态y范围的问题,我已经添加了我的原始问题使用preferredNumberOfMajorTicks来控制等分中的间隔数labeling policy Interval=ticks-1。最佳标签数没有通用公式。它取决于太多的因素:图形的可用空间大小、标签的大小取决于文本的字体和大小、标签之间所需的空间等。