Excelとの連携 3

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