Automatic Coloring
Overview
AnyChart provide a lot of ways to color series and points. This article is dedicated to automatic ways to handle some specific cases for different chart and series type.
Negative Positive Threshold
Coloring negative and positive parts of the chart in AnyChart can be easily done using negativeStroke(), negativeFill(), and negativeHatchFill() methods.
For example, for line series you can define basic and negative stroke:
var chart = anychart.line();
// create line series
line = chart.line(data.mapAs({x: 0, value: 1}));
// set positive and negative stroke settings
line.stroke("#3ba158", 2, "2 2");
line.negativeStroke("2 #fa6b71");
In the next sample you can find area and line series with custom negative and positive colors:
Baseline
You can customize the thresholds where positive turns to negative using the baseline() method. In the following sample baseline is set to custom value from the start and you can use slider to change it on-the-fly.
Notice that we are dealing with AnyStock here and everything works just the same way.
Rising Falling
You can configure Rising and Falling colors for easier tracking the trend chart follows, it is done using risingStroke(), risingFill(), risingHatchFill(), fallingStroke(), fallingFill(), and fallingHatchFill() methods.
These methods can be applied to OHLC, Candlestick, as well as Lines, Splines, and others, even Columns or Stick.
// set rising / falling colors
series.risingStroke('#3ba158');
series.risingFill('#3ba158');
series.fallingStroke('#fa6b71');
series.fallingFill('#fa6b71');
Take a look at the sample and change the series type to see how it works:
Coloring Functions
If you want to color points depending on the value in your completely own way you can set color as functions and use values as the way to decide what the color should be.
Here is a sample of column chart that does that for column chart:
// create a series
series = chart.column(data);
// set custom coloring functions
series.fill(coloringFunction);
// custom coloring function
function coloringFunction() {
// color the maximal value
if (this.value == this.series.getStat('seriesMax')) return '#94353C';
// color elements depending on the argument
var x = this.x;
if ((x == 'Jan') || (x == 'Feb') || (x == 'Dec')) return '#B2E3E8';
if ((x == 'Jul') || (x == 'Jun') || (x == 'Aug')) return '#D94330';
// get the default otherwise
return this.sourceColor;
}