2

我以通常的方式向散点图添加了渐变:

CPTFill areaGradientFill = [CPTFill fillWithGradient:areaGradient1];
boundLinePlot.areaFill = areaGradientFill;
boundLinePlot.areaBaseValue = 0;

areaBaseValue使用该属性很容易设置渐变的最小值。但是,渐变将始终拉伸,使得由 定义的整个颜色范围areaGradient1出现在折线图下方。

我想做的是设置一个绝对的 y 轴范围(例如,0 到 100),并始终将渐变设置为该范围。因此,如果我的线位于 y=50 处,则只有底部 50% 的渐变会呈现在该线下方。我认为设置boundLinePlot.areaBaseValue2 = 100;会这样做,但它没有任何效果。

CorePlot 支持这个吗?如果不是,那么实施它的“正确”方法是什么?

(这是我的第一个问题,如果我不清楚,请道歉。要温柔。:))

4

2 回答 2

1

虽然没有直接的方法可以实现这一点,但您可以使用技巧。使您的水平全局范围比正常显示的范围更广,并且不要使图形水平滚动。在隐藏区域的图形中添加一个值,该值始终是您的最大值。这将填充完整的渐变。然而,其他部分只会获得部分渐变,具体取决于它们的高度。

我在查看我的一张图表时偶然发现了这个技巧。看:

在此处输入图像描述

顶部的概述显示了大图当前的位置(绿色限制带)。现在将其与另一部分进行比较:

在此处输入图像描述

您可以清楚地看到,大值的尖端与较小值的尖端具有不同的梯度值。

于 2013-08-29T16:39:14.940 回答
0

您可以使用“背景限制带”在绘图后面以特定大小绘制填充,但这不会被剪裁到绘图线。

于 2013-08-28T23:43:16.023 回答