我有4个SChartLineSeries(不同的线条颜色表示读取,绿色,黄色,蓝色)。这四个都可以在任何时候彼此交叉。我也必须用Gradient填充它。我的观点是:
如果我们在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];
但是,如果红线在任何点穿过黄线(黄线不再在底部)并成为最底线。现在我必须以这样一种方式制作渐变效果:黄色线条下面会有黄色渐变效果,红色线条下面会有红色渐变效果。等等。
AND,对于最底线以上的线也一样。我们必须为它做出渐变效果。如果其他线穿过这个,那么渐变的颜色应该改变。如果第三行切割第二行,则再次改变颜色。等等。但是渐变效果不应该降到最低点,它应该在到达下一行的地方停止。
我必须为所有线条显示这些效果。
所以,任何想法,请。
感谢您的回复。
答案 0 :(得分:0)
听起来你需要堆叠你的系列并将你的系列分成更小的系列:
要堆叠系列,请将每个系列的stackIndex属性设置为相同的NSNumber - 例如:
lineSeries.stackIndex = @0;
这意味着你的行填充画面,“最低”到下一个最低,依此类推。您还需要为每个数据点提供y值,作为相同xValue的前一个(下部)系列yValue的偏移量。
仅凭这一点不能解决您的问题 - 为了解决这个问题,您可以在系列顺序发生变化的每个点(每当两条线交叉)时将数据拆分为不同的部分(不同的系列)。这种方法意味着在将数据传递给图表之前,您的数据源必须做相当多的工作 - 并且您最终可能会有很多系列 - 但它应该产生您所追求的效果。希望这可以帮助! =)
免责声明:我在ShinobiCharts工作。