今回は「バタフライ・チャート」と呼ばれるグラフの作り方を紹介していこう。バタフライ・チャートは、2つの系列を左右に並べて横棒グラフで示したもので、その代表的な例は「人口ピラミッド」となる。もちろん、他のデータにも応用できるグラフなので、気になる方は一読しておくとよいだろう。

バタフライ・チャートとは?

「バタフライ・チャート」という言葉を初めて耳にする方もいるかもしれない。そこで、まずはバタフライ・チャートの具体的な例を示しておこう。

以下の図は、2020年における日本の人口分布をグラフで示したものだ。一般的に「人口ピラミッド」と呼ばれているグラフである。

  • バタフライ・チャートの例

このグラフの基となるデータ表も紹介しておこう。こちらは以下の図のようになっている。なお、このデータ表は、総務省の統計ダッシュボードの数値をもとに作成している。

  • グラフの基となるデータ

「マイナスの値」を利用したバタフライ・チャート

それでは、バタフライ・チャートの作り方を解説していこう。まず最初に思いつくのは、「左右に伸びる棒グラフ」を作成する方法だ。これは、本連載の第12回第13回で紹介した内容の「横棒グラフ」バージョンになると考えられる。

最初に「男性」のデータを「マイナスの値」に変換する。続いて、この表を基に「積み上げ横棒」のグラフを作成する。すると、以下の図のような結果が得られる。

  • 「男性」のデータを「マイナスの値」に変換

  • 「積み上げ横棒」のグラフを作成

このグラフには「変換前の男性」のデータも含まれているので、グラフフィルターを使って「変換前の男性」をグラフから除外する。続いて、「縦軸」のラベルの位置を「左端」に変更すると、以下の図のようなグラフにカスタマイズできる。

  • カスタマイズしたグラフ(1)

ここまでの手順は、第12回第13回の連載で解説した内容と基本的に同じだ。棒グラフの向きが「縦」から「横」に変化しているだけなので、詳しく解説しなくても理解できるだろう。よくわからない方は、第12回第13回の連載を先に読んでおくと、内容をスムーズに理解できるはずだ。

続いては、「100歳以上」の項目がグラフの一番上に配置されるように「縦軸」を反転する。この操作手順は、「縦軸」の「軸の書式設定」を開き、

  1. 「軸を反転する」をONにする
  2. 「横軸との交点」を「最大項目」にする

と設定を変更していけばよい(詳しくは、第10回の連載を参照)。

  • カスタマイズしたグラフ(2)

あとはグラフの見た目を整えるだけ。それぞれの「系列」の色を変更し、「横軸」の数値の範囲を-500万~500万に変更すると、以下の図のようなグラフに仕上げられる。

  • カスタマイズしたグラフ(3)

これでバタフライ・チャートの基本形を作成できたことになる。ただし、「男性」の数値(横軸のラベル)が「マイナスの値」になっていることが気になる方もいるだろう。

第12回の連載で紹介した「転入」と「転出」のデータであれば、「転入」がプラス、「転出」がマイナスであっても特に違和感を覚えないと思われる。一方、今回の例のように、「女性」がプラス、「男性」がマイナスと表現するのは少し無理がある。

そこで「横軸」に並ぶ数値を、両方向とも「プラスの値」に変更しておこう。「横軸」を右クリックし、「軸の書式設定」を呼び出す。

  • 「横軸」の書式設定の呼び出し

「軸の書式設定」が表示されたら「表示形式」のカテゴリを展開し、「シートとリンクする」をOFFにする。続いて、表示形式コードに「#,##0_ ;#,##0」と入力して「追加」ボタンをクリックする。

  • 「表示形式」の変更

念のため、ここで入力したコードの意味を簡単に補足しておこう。

「;」(セミコロン)より前に記述したコードは、「プラスの値」の表示形式を指定している。この部分には「#,##0」と記述しているので、3桁ごとに「,」(桁区切り)を配置して数値を表示する、という指定になる。

一方、「;」(セミコロン)の後に記述したコードは、「マイナスの値」の数値の表示形式を指定する部分となる。こちらも先ほどと同じように「#,##0」が指定されているので、(マイナス記号を表示せずに)3桁ごとに「,」(桁区切り)を配置して数値を表示する、という指定になる。

このように「横軸」の表示形式をカスタマイズすると、(見た目上は)左右とも「プラスの値」のグラフに仕上げることができる。

  • 「横軸」のラベルをカスタマイズしたグラフ

最後に、「グラフ タイトル」を入力し、文字の書式を調整すると、以下の図のようなバタフライ・チャートが完成する。

  • 完成したバタフライ・チャート

以上が、バタフライ・チャートの一般的な作り方となる。とはいえ、「年齢のラベル」が左端に配置されているため、少し見づらいグラフであることは否めない。冒頭で示したバタフライ・チャートのように、グラフの左右中央に「年齢のラベル」を配置したい、と考えても不思議はないだろう。

グラフを組み合わせてバタフライ・チャートを作る

続いては、グラフの左右中央に「年齢のラベル」を配置する方法を検討していこう。このような配置を設定変更により実現できればよいが、残念ながら、Excelにはそのような設定項目は用意されていない。

第2軸を使用し、数値の範囲を工夫することで実現できない訳ではないが、ラベルが一直線に並ばないレイアウトになるため、ベストな選択肢とはいえない。よって、ここでは、2つのグラフを組み合わせる方法を紹介しておこう。

まずは、普通に「集合横棒」のグラフを作成する。このとき、「男性」のデータを「マイナスの値」に変換しておく必要はない。「男性」と「女性」の2つの系列を、そのまま横棒グラフにすればよい。

  • 「集合横棒」のグラフを作成

続いて、「100歳以上」が一番上になるように「縦軸」を反転し、グラフ フィルターで「男性」の系列を除外する。すると、以下の図のようなグラフになる。

  • 「男性」の系列を除外したグラフ

その後、「横軸」の数値の範囲を0~500万に変更し、「要素の間隔」を調整して「グラフの太さ」を太くすると、以下の図のようなグラフにカスタマイズできる。

  • 書式をカスタマイズしたグラフ

ここまでの作業が済んだら、「Ctrl」キーを押しながらグラフをドラッグ&ドロップし、グラフを複製する。

  • グラフの複製

グラフを複製できたら、一方のグラフを「男性」のグラフに変更していこう。グラフ フィルターを使って「男性」をON、「女性」をOFFに切り替える。

  • グラフ化する系列の変更

これで「男性」と「女性」の2つの横棒グラフを作成できたことになる。

  • 「男性」と「女性」の2つの横棒グラフ

続いて、「男性」のグラフの「横軸」を反転すると、2つのグラフは以下の図のようになる。

  • 「男性」のグラフの「横軸」を反転

あとは、2つのグラフを少し重ねて配置するだけ。「Shift」キーを押しながら2つのグラフをクリックして同時選択し、「オブジェクトの配置」→「上揃え」を指定すると、上下の位置を揃えることができる。

  • 2つのグラフを整列

左右の配置は、一方のグラフをマウスでドラッグして調整する。このとき、「Shift」キーを押しながらマウスをドラッグすると、水平方向にグラフを移動できる。

グラフの位置を調整できたら、グラフ内の余白(グラフ エリア)を右クリックし、「枠線」→「枠線なし」を指定する。

  • 「グラフ エリア」の枠線を「なし」に変更

これで、2つのグラフを「1つのグラフ」のように見せることが可能となる。少し強引な手法ではあるが、複雑なグラフを作成するテクニックの一つとして、覚えておいても損はないはずだ。

なお、複数のグラフを組み合わせるときは、

 ・グラフ内に表示する要素を統一する
 ・グラフのサイズを統一する

の2点に注意する必要がある。これらに相違点があると、「グラフがきれいに重ならない・・・」という結果になってしまう。

グラフを複製した後に、グラフのサイズを拡大/縮小したくなった場合は、「書式」タブの「サイズ」を使ってグラフのサイズを数値で指定するとよい。これで2つのグラフのサイズを簡単に統一することができる。

  • グラフのサイズを数値で指定

最後に、「系列」の色を調整して、2つのグラフから「凡例」を削除すると、バタフライ・チャートが完成する。間違ってグラフを移動してしまわないように、この時点で2つのグラフをグループ化しておくとよいだろう。

  • グループ化したグラフ

このように、複数のグラフを組みわせて「1つのグラフ」に仕上げることも、状況によっては十分に実用的な手法となる。

Excelに用意されている書式設定を使って「なんとか目的の形に仕上げよう」と試行錯誤しても、やはり限界はあるものだ。それよりも「見た目重視」で効率的にグラフを作成したほうが好結果になるケースは少なくない。このように柔軟な発想のもと、グラフを作成していくことも大切だ。