まずはこちらをご覧下さい。

See the Pen D3.js Bar Chart Example (IMdb data in 2018) by Sota Hatakeyama (@chooblarin) on CodePen.

このチャートはIMDb の 2018 映画ランキング の投票数です。


SVG ではlinearGradient 要素を使って図形をグラデーションで塗ることができます。

See the Pen SVG Gradient Triangle by Sota Hatakeyama (@chooblarin) on CodePen.


定義したグラデーションカラーを fill に指定するだけ。

<path ... fill="url('#gradient')" />

先ほどの棒グラフの rect をこれと同様に塗りつぶすと…


See the Pen D3.js Bar Chart with Gradient #1 (IMdb data in 2018) by Sota Hatakeyama (@chooblarin) on CodePen.

これはこれで悪く無いですが,投票数の大小とカラーグラデーションとを対応づけたくなります。

See the Pen D3.js Bar Chart with Gradient #2 (IMdb data in 2018) by Sota Hatakeyama (@chooblarin) on CodePen.

これは,グラフの背景にグラデーションカラーの rect の上に,<clipPath> を使ってグラフを描画しています。

この方法は棒グラフのみでなく,時系列グラフなどにも利用できます。

See the Pen D3.js Time Series Chart with Gradient Color by Sota Hatakeyama (@chooblarin) on CodePen.

以上,カラーグラデーションを効果的に使った美しいチャートを描く方法を紹介しました。


おまけ。d3-interpolate を使うと以下のようなグラフも簡単に描くことが出来ます。

See the Pen D3.js Bar Chart with Gradient #3 (IMdb data in 2018) by Sota Hatakeyama (@chooblarin) on CodePen.