エクセルで自在なグラフを描く裏技
エクセル(表計算アプリ)で自由度の高いグラフを描く裏技的方法を紹介します。少し面倒ですが、思った通りのグラフが描けます。エクセルでグラフを書く時、通常なら「棒グラフ」や「折れ線グラフ」や「円グラフ」が多用されるのではないかと思います。相関関係を示すなら「散布図」です。私が必要とするのは何かの変遷(例えば業績)を知りたい時なので、形式的には折れ線グラフです。しかしエクセルが提供する「折れ線グラフ」は使いません。使うのはもっぱら「散布図(直線)」です。この「散布図(直線)」はX座標とY座標で規定される平面上のデータ同士を線で結ぶものです。使うのはこれのみと言っても過言ではありません。

グラフの作り方に入る前にイラストを紹介します。「ドクタースランプ」に登場するスーパーロボット「則巻アラレ」です(図1)。このイラストは、ここまで出来るという事を示すために「散布図(直線)」で描いたものです。まずはこのデータの成り立ちを説明します。私はPC-8001からパソコンを使い始めました。ワンボード・マイコンの次に出てきた黎明期の代表的な機種(NEC)です。まだCP/MとかMS-DOSというOS(オペレーティング・システム)も無い時代です。N-BASICというコンピュータ入門用の言語がOSを兼ねていました。この機種ではキャラクター(文字)単位でしか表示できず、絵を描くにしても粗いものだけでした。その次に使ったのがPC-8801です。PC-9801が出る前です。ここでN88-BASICとなり、line関数で線画を描くことが出来るようになりました。このイラストは、その時にデータ作成のために方眼紙に描いたものです(図2)。エクセルで使えるようにY軸の座標を変換してデータを作り変えました。蛇足ながら、この頃は右手でテンキーの0~9、左手でa~fというブラインド・タッチで、雑誌に載っているインベーダー・ゲーム等のマシン語プログラムを入力していました。マシン語とは16進数の0~fからなる2桁表示の数字の羅列です。





元のイラストは30年以上も前のものです。これが手元に残っているのは「袋ファイル整理法」のおかげですが、これについては稿を改めて書きます。このイラストは「98本の折れ線」から出来ています。ここで言う折れ線とは「一筆書きで描ける線」のことであり、イラストは「一筆書き(折れ線)」の集合体ということです。(x,y)で指定される単純な座標データが98系列あります。例として左目と瞳のデータを示します。
---------------
左目(x,y)
125,103
127,102
129,101
131,98
132,95
133,89
133,81
132,76
130,72
128,70
126,69
123,69
120,72
118,76
117,82
117,90
118,95
120,100
122,102
125,103
---------------
左瞳(x,y)
126,93
127,92
128,88
128,83
127,80
126,78
124,78
123,80
122,84
122,88
123,91
124,93
126,93
---------------

この稿は「散布図(直線)」を用いたグラフの描き方です。このグラフが威力を発揮するのは、何かの経時的な変化を追うときです。経時的な変化の典型例は「横軸(X軸)が日付」の時です。エクセルは西暦1900年1月1日をシリアル値の「1」として、連続した数値に置き換えます。横軸を日付にすると、1月や8月のような大の月は31日間、4月のような小の月は30日間、2月は28日(閏年なら29日)の間隔で示されます。縦軸(Y軸)のデータ量の変化が、時間の流れ(横軸)に応じて表示されるのです。Y軸の変化量が同じ場合であっても、その変化が短い期間で生じたものなのか、長い期間を要したものなのかが直観的に分かります。

例として、札幌西円山病院の回復期リハビリ病棟における実績指数の変化を取り上げます。x軸の座標は便宜的に各月の中央を指定しました。2月は14日。それ以外は15日です。2016年6月から2019年7月までのデータを示します。
---------------
日付(x),実績指数(y)
2017/06/15 , 19.5
2017/07/15 , 17.5
2017/08/15 , 17.1
2017/09/15 , 15.5
2017/10/15 , 13.5
2017/11/15 , 11.9
2017/12/15 , 12.3
2018/01/15 , 13.0
2018/02/14 , 13.9
2018/03/15 , 14.7
2018/04/15 , 16.2
2018/05/15 , 18.8
2018/06/15 , 18.7
2018/07/15 , 21.1
2018/08/15 , 22.8
2018/09/15 , 25.0
2018/10/15 , 28.1
2018/11/15 , 28.5
2018/12/15 , 31.9
2019/01/15 , 33.4
2019/02/14 , 36.0
2019/03/15 , 36.2
2019/04/15 , 37.6
2019/05/15 , 39.9
2019/06/15 , 38.5
2019/07/15 , 39.0
---------------

エクセル上では、この2列のデータをマウスでドラッグしてデータ範囲を指定し、「散布図(直線)」を指定します(図3)。この例では毎月の数値が存在しますが、仮に途中のデータが欠落している場合でも、横軸のスケールは変わりません。逆に、途中に複数のデータが有る場合でも、元の横軸のスケールが変わることはありません。横軸(x軸)は日付だからです。このデータは、最初に示したイラストで言うと「一筆書きで描ける線」の1本目であり「系列1」です。



これに日付が一定間隔でない架空のデータを加えます。
---------------
日付(x),架空データ(y)
2017/06/25 , 30.0
2017/09/03 , 32.0
2017/10/05 , 19.0
2018/01/03 , 23.0
2018/10/20 , 22.0
2019/03/03 , 19.0
2019/03/31 , 24.0
2019/05/05 , 32.0
2019/06/07 , 29.0
2019/07/15 , 34.0
---------------

最初に出来た折れ線にカーソルを当ててマウスを「右クリック」します。するとメニューが出てくるので「データの選択」を選びます(図4)。そうすると「データソースの選択」なるボックスが出てきます(図5)。そこで「系列の追加」をクリックすると、「系列の編集」ボックスが出ます(図6)。ここで新たなデータの範囲をx座標とy座標について指定します。これが「一筆書き」の2本目に相当します(系列2)。折れ線の色や太さは後で変更できます。







データが増えていった場合、追加されたデータをグラフに反映させる必要があります。同じように線(どれでも良い)にカーソルを当てて「右クリック」して「データソースの選択」なるボックスを出します(図7)。今度は、変更したい系列を指定して「編集」をクリックします。図8では例として「系列2」のデータを追加します。そこで選択した系列のx値(増えた日付の行番号)と、y値(増えた値の行番号)を変更します(図8)。あらかじめ、グラフのデザインについて線の太さ等を決めておくと、そのデザインのままで折れ線が伸びていきます。





この方法の見た目の欠点は、x軸のメモリ表示が「一定間隔の日付」になってしまうために「月の始まり」と合わない事です。これは邪魔ですが、どうしようもありません。表示を消える設定にするか、背景の色(デフォルトでは白)と同じ色の四角形を作って覆います(図9)。私はグラフエリアに自動的に描かれる横線や縦線も邪魔なので消します。そして、各月の1日を「系列」として追加で入れています。データと同じく「一筆書きの線」とする訳です。これは面倒な処理ですが、最初に1回やっておけば済みます。このグラフの場合、y軸の最大値は45ですから、例えば2017年6月1日に縦線を入れたい時には、(x,y)の形式で示すと「(2017/6/1,0)から(2017/6/1,45)まで」の線を引きます。座標は2個しかありませんが、これが「一筆書き」の3本目(系列3)です。
---------------
日付(x),縦線のy座標(y) ← x座標が同じだと縦線になる
2017/06/01 , 0
2017/06/01 , 45
---------------

もう1本、7月1日の縦線を入れてみます。「(2017/7/1,0)から(2017/7/1,45)まで」の線です。これが「一筆書き」の4本目(系列4)です。これらの縦線も自動的に色が付いてしまいますが、細い黒の点線にでも変えておくと見やすいかと思います。
---------------
日付(x),縦線のy座標(y) ← x座標が同じだと縦線になる
2017/07/01 , 0
2017/07/01 , 45
---------------

このグラフに横線を入れてみます。例えば「y軸の40の高さ」に、2018年2月1日から2019年1月1日までの横線を入れます。データを(x,y)の形式で示すと「(2018/2/1,40)から(2019/1/1,40)まで」の線です。前記と同様の方法で系列を追加します。これが5本目(系列5)の「一筆書き」です。
---------------
日付(x),横線のy座標(y) ← y座標が同じだと横線になる
2018/02/01 , 40
2019/01/01 , 40
---------------



このように、次々と「系列を増やす」ことでグラフはいくらでも複雑にすることが可能です。y軸のスケールは基本的に左側の主軸ですが、右側に副軸を作ることもできます。最初のイラストで示したように、この「一筆書き」は必要とあれば途中から日付を戻る(線が左側に戻る)ことさえできます。データが(x,y)座標で指定されていれば「一筆書き」はどのようにも描けるからです。これは通常の「折れ線グラフ」では不可能です。グラフには、文字列のコメントや簡単な図形を付け足すこともできます。この稿で示した方法でグラフを作ると、データがどれくらいの時間をかけて変化してきたかが直感的に分かります。「過去から現在までの推移」を視覚的に理解すると、「未来を予測」することも可能です。その場の数字の大小だけで一喜一憂していても仕方がありません。

./image/1567926153_616.pdfPDFファイル


センター長 | No.41 札幌西円山病院リハビリテーションセンター   2019/09/08(Sun) 15:49:12
ページトップへ