Excelによる3-D/等高線グラフの描画 2変数関数の描画 Excel によるグレイスケールマップ風描画 今日のポイント 3Dグラフ描画のためのテクニックを身につける
3-D/等高線グラフの練習 Excelのシート上で数値データを2次元的に配置 (CSVファイルを読み込むか、手で入力) データ領域を選択 「挿入(I)」→「グラフ(H)...」または グラフ挿入アイコン を選択して グラフウィザード を起動 「グラフの種類(C)」で等高線を選択し、「形式(T)」で 3-Dグラフ または 等高線グラフ を選択 「完了」をクリックして、とりあえずグラフ描画
練習1 以下のデータで3-Dグラフと等高線グラフを描いてみよ 1 2 1 2 3 4 5 S1 S4 1.8-2 2 1.6-1.8 1.8 1 2 2 1.6-1.8 1.8 1.6 1.4-1.6 1.4 1.2 1.2-1.4 1 1-1.2 0.8 0.6 0.8-1 0.4 0.2 0.6-0.8 0.4-0.6 0.2-0.4 0-0.2
3-D/等高線グラフのためのTips(1) データ領域の左上隅に数値があれば、領域内の0は省略可(空白セルは0とみなされる) データ領域が広い場合、Ctrl+<矢印>でデータ境界までジャンプするとよい 「グラフ(C)」メニュー内の「元のデータ(S)...」の データ範囲 タブでの系列: 行(R) では、前後(上下)の軸(=Y)がシートの向きと逆 → Y軸=系列軸(S1,S2...)の書式設定で「軸を反転する」をチェックするとシートと同じになる 列(L) にすると、下がX、右がYになり、左90度回転
3-D/等高線グラフのためのTips(2) 1行目(あるいは1列目)を 項目軸ラベル に指定 3-DグラフでのZ/数値軸の目盛間隔変更はZ/数値軸を右クリックして「軸の書式設定(O)...」メニューの 目盛 タブで行う 等高線グラフでのZ/数値軸の目盛間隔変更は 「凡例の書式設定(O)...」 メニューの 目盛 タブで 「グラフ(C)」メニューの「3-Dグラフ(V)...」より「3-Dグラフ設定」メニューを開くと、視点の位置などを変更できる
3-D/等高線グラフのためのTips(3) Z軸のレベルをあらわす 凡例マーカー の色を変更するには、凡例内の個々のマーカーだけをクリック選択し、右クリックにより「凡例マーカーの書式設定(O)...」メニューを開いて 領域 の色を選択する → 大変面倒でかつ、色数が少ない… 「グラフ(C)」メニュー「元のデータ(S)...」の 系列 タブで系列の 名前(N) 欄にY軸の数値を入れると、なおよいのだが…
練習2 以下のデータで3-D/等高線グラフを描き、Tipsをためしてみよ x y y x -1 1 3 1 2 3 4 5 6 7 S1 -1 1 3 y 2.5-3 2-2.5 1.5-2 1-1.5 0.5-1 0-0.5 y -1-0 -1--1 x
2次元分布関数のプログラム x, y は -n/10 ~ n/10 f (x,y)=exp(-(x2+y2)) /* Gauss2.c */ #include <stdio.h> #include <math.h> int main(void) { int i, j, n=20; double x, y; for (i = -n; i <= n; i++) { x = 0.1*i; printf("% 3.1f,",x); for (j = -n; j <= n; j++) { y = 0.1*j; printf("%5.3f",exp(-(x*x+y*y))); if (j == n) printf("\n"); else printf(","); } return 0; x, y は -n/10 ~ n/10 f (x,y)=exp(-(x2+y2))
実行結果 Z:\nyumon2>cl gauss2.c ... Z:\nyumon2>gauss2 > gauss2.csv このあと、CSVファイルを開き、XLSファイルに保存してから3-Dグラフを描く。
3-Dグラフの例 -2 -1 1 2 1 0.8 0.8-1 0.6 0.6-0.8 z 0.4 0.4-0.6 0.2-0.4 0.2 0-0.2 x
ヒント 1列目のデータは「項目軸ラベル」用 よって、データ領域は2列目からとする 「元のデータ(S)...」の データ範囲 タブでの系列は「列(L)」に 「元のデータ(S)...」の 系列 タブで「項目軸ラベルに使用(T)」の欄に1列目(A列)のセル($A$1:$A$41)を指定
スキルアップタイム: 128x128 データ face.dat を読み込み、等高線グラフにせよ。 (グラフの場所は「新しいシート」とせよ) 向きが写真と同じになるように直せ。 Z軸のレベルがおおよそ10段階くらいになるように目盛間隔を調節せよ。 マーカー色にグレーや肌色を用い、モノクロ印刷したときに自然な階調のグレーマップとなるように変更せよ。
ヒント: face.dat はcsvファイルではない。読み込むとき、ファイルの種類を すべてのファイル(*.*) としてから開き、 スペースによる固定長フィールドのデータ として読み込む。 凡例マーカーの書式設定で輪郭をなしにすると、格子が消えてきれいになる。
第4回レポート(任意) 課題: スキルアップタイム の成果 提出期限: 2009年1月30日(金) 12:50 提出場所: ネットワーク実験室(1)の入口近くの箱 以下の項目を入れること(表紙は不要) 学籍番号、氏 名 face.dat の等高線グラフ (予備課題の場合はプログラムと3-Dグラフ) 感 想
予備のスキルアップタイム課題 C と Excel を用いて、 関数 f (r) = exp(-r2) |cos(2pr)|, r2 = x2+y2 の3-Dグラフを描け。 ただし、-2≦ x,y ≦2, Dx,Dy = 0.1 とする。
カラーパレットの設定変更 「ツール(T)」メニューから「オプション(O)...」メニューを開き 色 タブにおいて グラフの塗りつぶし用のパレットを変更しておくことができる。 設定したファイルをテンプレートとして保存しておき、必要なときに再利用するとよい。