0

我有 4 个 SChartLineSeries(不同的线条颜色说读取、绿色、黄色、蓝色)。这四个都可能在任何时候相互交叉。我还必须用渐变填充它。我的观点是:

  1. 如果我们在 x 轴的最低位置有黄色线,我们可以根据黄色管理渐变。

    series.style.showFill = YES;

    series.style.areaColor = [UIColor colorWithRed:65.0 / 255.0 green:165.0 / 255.0 blue:65.0 / 255.0 alpha:1];

    series.style.areaColorLowGradient = [UIColor colorWithRed:35.0 / 255.0 green:75.0 / 255.0 blue:35.0 / 255.0 alpha:1];

  2. 但是,如果红线在任何一点穿过黄线(黄线不再在底部)并成为最底线。现在我必须以这样一种方式制作渐变效果,即黄线将在其下方具有渐变和黄色效果,而红线将在其下方具有渐变与红色效果。等等。

  3. 并且,对于最底线上方的线也是如此。我们必须为它制作渐变效果。如果其他线越过这条线,那么渐变的颜色应该改变。如果第三行切断第二行,则再次更改颜色。等等。但是渐变效果不应该到底部,它应该在与下一行相遇的地方停止。

我必须为所有行展示这些效果。

所以,请有任何想法。

感谢您的回复。

4

1 回答 1

0

听起来你需要堆叠你的系列并将你的系列分成更小的系列:

要堆叠您的系列,请将每个系列的 stackIndex 属性设置为相同的 NSNumber - 例如:

lineSeries.stackIndex = @0;

这将意味着您的线填充带状,“最低”到下一个最低,依此类推。您还需要为每个数据点提供 yValue,作为与相同 xValue 的前一个(较低)系列 yValue 的偏移量。

仅此一项并不能解决线条重叠的问题 - 要解决此问题,您可以在系列顺序发生变化的每个点(当两条线交叉时)将数据拆分为不同的部分(不同的系列)。这种方法意味着在将数据传递到图表之前,您的数据源必须做大量工作 - 您最终可能会得到很多系列 - 但它应该会产生您想要的效果。希望这可以帮助!=)

免责声明:我在 ShinobiCharts 工作。

于 2013-07-08T10:08:39.020 回答