【D3.js】 カラーテーマの設定方法

PieChart

D3.js(v5)を使ったカラーテーマの設定方法を、円グラフをサンプルにご紹介します。

HTML/JavaScriptサンプル

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>D3 Pie Chart</title>
<script src="d3.min.js"></script>
<style>

h1{
  font-size: small;
  font-family: "Hiragino Kaku Gothic ProN","メイリオ", sans-serif;
}

svg{
  font: 12px sans-serif;
  background-color: #eee;
  text-align: right;
  padding: 3px;
  margin: 1px;
  color: #333;
}
</style>
</head>

<body>
<h1>2022年国内IoT市場規模予測:約11.7兆円</h1>
<script>
  // 1. データの準備
  var dataset = [
    { "name": "サービス", "value": 33.7},
    { "name": "ソフトウェア", "value": 22.7 },
    { "name": "コネクティビティ", "value": 9.7 },
    { "name": "ハードウェア", "value": 29.2 }
  ]

  var width = 600; // グラフの幅
  var height = 400; // グラフの高さ
  var radius = Math.min(width, height) / 2 - 10; // 円の半径

  // SVG設定
  var svg = d3.select("body").append("svg").attr("width", width).attr("height", height);

  g = svg.append("g").attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");

  // カラー設定
  var color = d3.scaleOrdinal()
    .range(["#A4243B", "#D8C99B", "#D8973C", "#BD632F", "#273E47"]);

  // 円グラフ関数
  var pie = d3.pie()
    .value(function(d) { return d.value; })
    .sort(null);

  // 円グラフへのデータ設定
  var pieChart = g.selectAll(".pie")
    .data(pie(dataset))
    .enter()
    .append("g")
    .attr("class", "pie");

  arc = d3.arc()
    .outerRadius(radius)
    .innerRadius(0);

  pieChart.append("path")
    .attr("d", arc)
    .attr("fill", function(d) { return color(d.index) })
    .attr("opacity", 0.8)

  // 円グラフにテキスト追加
  var text = d3.arc()
    .outerRadius(radius - 60)
    .innerRadius(radius - 60);

  pieChart.append("text")
    .attr("fill", "black")
    .attr("transform", function(d) { return "translate(" + text.centroid(d) + ")"; })
    .attr("dy", "5px")
    .attr("text-anchor", "middle")
    .text(function(d) { return d.data.name; });
  </script>
</body>

</html>

カラーテーマを設定する

d3.scaleOrdinal()で、.range()で指定された配列を繰り返し設定します。

 // カラー設定
  var color = d3.scaleOrdinal()
    .range(["#A4243B", "#D8C99B", "#D8973C", "#BD632F", "#273E47"]);

D3.jsの標準カラーテーマを利用することもできます。

// カラーテーマ呼び出し  
var color = d3.scaleOrdinal(d3.schemeSet3); 

.schemeSet3 というカラーテーマを使用しています。

カラーテーマを使用する

返り値を代入した変数の配列指定することでカラーテーマを使います。

 pieChart.append("path")
    .attr("d", arc)
    .attr("fill", function(d) { return color(d.index) }) //セットしたカラーテーマ配列を呼び出す。
    .attr("opacity", 0.8)

まとめ

d3.jsでカラーテーマを設定する方法でした。

関連情報

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA