この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
ch_stat [2018/01/02 10:52] kanemune |
ch_stat [2018/01/06 21:49] (現在) kanemune |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
- | # ドリトル 統計機能(V3.22) | + | # ドリトル 統計機能 (V3.22) |
ドリトルは教育用に設計されたオブジェクト指向型のプログラミング言語です。本文書ではドリトルの統計機能について解説しています。 | ドリトルは教育用に設計されたオブジェクト指向型のプログラミング言語です。本文書ではドリトルの統計機能について解説しています。 | ||
# 1.ドリトル | # 1.ドリトル | ||
## 1.1 インストールとプログラムの実行 | ## 1.1 インストールとプログラムの実行 | ||
- | 本文書の統計機能はV3.22以降のドリトルに含まれています。次のサイトからドリトルをダウンロードしてください。 | + | 本文書の統計機能はV3.22以降のドリトルに含まれています。次のサイトからドリトルをダウンロードしてください。(オンライン版は未対応です) |
* [[http://dolittle.eplang.jp|プログラミング言語「ドリトル」]] | * [[http://dolittle.eplang.jp|プログラミング言語「ドリトル」]] | ||
ライン 28: | ライン 28: | ||
リストオブジェクトを作成する場合は以下のようになります。実行すると画面にリストオブジェクトが表示されます。 | リストオブジェクトを作成する場合は以下のようになります。実行すると画面にリストオブジェクトが表示されます。 | ||
<code> | <code> | ||
- | リスト!作る。 | + | 1. リスト!作る。 |
</code> | </code> | ||
- | <WRAP center box 10%> | + | {{:pasted:20180106-070835.png}} |
- | + | ||
- | + | ||
- | + | ||
- | </WRAP> | + | |
ライン 52: | ライン 48: | ||
</code> | </code> | ||
- | <WRAP center box 10%> | + | {{:pasted:20180106-070835.png}} |
- | + | ||
- | + | ||
- | + | ||
- | </WRAP> | + | |
実行すると、画面に変化はありませんが、作成したリストには「表示エリア」と言う名前がついています。この名前は変数とも呼れます。複数のオブジェクトに同じ名前をつけた場合には、その名前は最後のオブジェクトの名前になります。 | 実行すると、画面に変化はありませんが、作成したリストには「表示エリア」と言う名前がついています。この名前は変数とも呼れます。複数のオブジェクトに同じ名前をつけた場合には、その名前は最後のオブジェクトの名前になります。 | ||
ライン 62: | ライン 54: | ||
### 1.2.3 オブジェクトに命令を送る | ### 1.2.3 オブジェクトに命令を送る | ||
- | ドリトルでは、オブジェクトに命令を送ることでプログラムを実行します。命令を送るオブジェクトは「 ! 」で指定し、その右側に送る命令を書きます。たとえば、以下のプログラムは、「表示エリア」に対して『120 書く』という命令を送っています。ここで[書く]は命令、「120」は命令とともに送られる値であり、パラメータ(引数)と呼ばれます。パラメータと命令の間には、空白を入れる必要があります。また、引数は文字列の場合はダブルクォーテーション(“)で囲む必要があります。実行すると、リストに120が書き込まれます。 | + | ドリトルでは、オブジェクトに命令を送ることでプログラムを実行します。命令を送るオブジェクトは「 ! 」で指定し、その右側に送る命令を書きます。たとえば、以下のプログラムは、「表示エリア」に対して『120 書く』という命令を送っています。ここで[書く]は命令、「120」は命令とともに送られる値であり、パラメータ(引数)と呼ばれます。パラメータと命令の間には、空白を入れる必要があります。また、引数は文字列の場合はダブルクォーテーション(")で囲む必要があります。実行すると、リストに120が書き込まれます。 |
<code> | <code> | ||
ライン 69: | ライン 61: | ||
</code> | </code> | ||
- | <WRAP center box 10%> | + | {{:pasted:20180106-070906.png}} |
- | 120 | + | |
- | + | ||
- | + | ||
- | </WRAP> | + | |
ライン 94: | ライン 82: | ||
</code> | </code> | ||
- | <WRAP center box 10%> | + | {{:pasted:20180106-070924.png}} |
- | 120\\ | + | |
- | 150 | + | |
- | + | ||
- | </WRAP> | + | |
上の2つのプログラムは、どちらのプログラムを実行しても同じ結果が得られます。下の方のプログラムでは、「表示エリア」と名前の付いたリストオブジェクトに対して『120 書く』という命令を実行し、120を書き込んでいます。さらに、120を書き込んだ結果のオブジェクトに対して『150 書く』という命令を実行しています。 | 上の2つのプログラムは、どちらのプログラムを実行しても同じ結果が得られます。下の方のプログラムでは、「表示エリア」と名前の付いたリストオブジェクトに対して『120 書く』という命令を実行し、120を書き込んでいます。さらに、120を書き込んだ結果のオブジェクトに対して『150 書く』という命令を実行しています。 | ||
ライン 108: | ライン 93: | ||
本章では、ドリトルの統計機能について説明します。 | 本章では、ドリトルの統計機能について説明します。 | ||
- | * データ入力 (データファイルの読み込み、配列でのデータ作成) … 3.1節、 3.2節 | + | * データ入力 (データファイルの読み込み、配列でのデータ作成) … 2.1節、 2.2節 |
- | * データ処理 (扱うデータの範囲を絞る、並び替え等) … 3.3節 | + | * データ処理 (扱うデータの範囲を絞る、並び替え等) … 2.3節 |
- | * データ分析 (相関係数や度数分布等) … 3.4節 | + | * データ分析 (相関係数や度数分布等) … 2.4節 |
- | * データの可視化(グラフや表の描画・表示) … 3.5節 | + | * データの可視化(グラフや表の描画・表示) … 2.5節 |
ライン 143: | ライン 128: | ||
^外部データの読み込み^ | ^外部データの読み込み^ | ||
- | |テーブルオブジェクト名=テーブル!”データファイル名” ファイルから作る。| | + | |テーブルオブジェクト名=テーブル!"データファイル名" ファイルから作る。| |
ライン 149: | ライン 134: | ||
<code> | <code> | ||
- | 1. 例題=テーブル!"," 区切り文字 "utf-8" 文字コード "data/sample.csv" ファイルから作る。 | + | 1. 例題=テーブル!"," 区切り文字 "utf-8" 文字コード "data/school.csv" ファイルから作る。 |
</code> | </code> | ||
ライン 161: | ライン 146: | ||
次のようなエラーが表示された場合は、2行目で未定義オブジェクトに「表示」が送られていますので、1行目で通学データに未定義オブジェクトが代入されたことがわかります。1行目の「ファイルから作る」が正しく実行されてテーブルオブジェクトを返すのではなく、正しく実行されずに未定義オブジェクトを返していますので、その理由を検討してください。この例では、「data/school.tsv」が「school.tsv」と書かれていることが原因でした。 | 次のようなエラーが表示された場合は、2行目で未定義オブジェクトに「表示」が送られていますので、1行目で通学データに未定義オブジェクトが代入されたことがわかります。1行目の「ファイルから作る」が正しく実行されてテーブルオブジェクトを返すのではなく、正しく実行されずに未定義オブジェクトを返していますので、その理由を検討してください。この例では、「data/school.tsv」が「school.tsv」と書かれていることが原因でした。 | ||
- | + | {{ :image_preview.png?direct&400 |}} | |
- |  | + | |
- | テーブルオブジェクトの生成後に、フィールド名を変更することができます。以下のプログラムは、“出席番号”というフィールド名を“学籍番号”に変更する例です。 | + | テーブルオブジェクトの生成後に、フィールド名を変更することができます。以下のプログラムは、"出席番号"というフィールド名を"学籍番号"に変更する例です。 |
<code> | <code> | ||
ライン 193: | ライン 177: | ||
<code> | <code> | ||
- | 1. 通学データ=テーブル!”data/school.tsv” ファイルから作る。 | + | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 |
2. 通学データ!表示。 | 2. 通学データ!表示。 | ||
</code> | </code> | ||
ライン 207: | ライン 191: | ||
### 2.3.1 選択:レコード(行)の抽出 | ### 2.3.1 選択:レコード(行)の抽出 | ||
- | テーブルから条件に該当するレコード(行)を取り出します。以下の例では、“住所”フィールドの値が「神戸市」のレコードを取り出し、表示しています。 | + | テーブルから条件に該当するレコード(行)を取り出します。以下の例では、"住所"フィールドの値が「神戸市」のレコードを取り出し、表示しています。 |
<code> | <code> | ||
ライン 220: | ライン 204: | ||
- | 本機能を活用することで、指定したフィールドの特定の検索条件に該当するデータに対して平均値や合計値等を算出できます。以下の例は、“住所”フィールドが「西宮市」のレコードを対象に“自宅までの距離”フィールドの平均値を算出しています。 | + | 本機能を活用することで、指定したフィールドの特定の検索条件に該当するデータに対して平均値や合計値等を算出できます。以下の例は、"住所"フィールドが「西宮市」のレコードを対象に"自宅までの距離"フィールドの平均値を算出しています。 |
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
2. 結果=通学データ!「住所=="西宮市"」選択。 | 2. 結果=通学データ!「住所=="西宮市"」選択。 | ||
- | 3. 結果!”自宅までの距離” 平均値 表示。 | + | 3. 結果!"自宅までの距離" 平均値 表示。 |
</code> | </code> | ||
### 2.3.2 射影:フィールド(列)の抽出 | ### 2.3.2 射影:フィールド(列)の抽出 | ||
- | テーブルから条件に該当するフィールド(列)を取り出します。以下の例では、”住所”と”自宅までの距離”のフィールドを取り出し、表示しています。 | + | テーブルから条件に該当するフィールド(列)を取り出します。以下の例では、"住所"と"自宅までの距離"のフィールドを取り出し、表示しています。 |
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
- | 2. 結果=通学データ!”住所” “自宅までの距離” 射影。 | + | 2. 結果=通学データ!"住所" "自宅までの距離" 射影。 |
3. 結果!表示。 | 3. 結果!表示。 | ||
</code> | </code> | ||
ライン 280: | ライン 264: | ||
^レコードの並べ替え:昇順^ | ^レコードの並べ替え:昇順^ | ||
- | | テーブルオブジェクト!”フィールド名" 小さい順。 | | + | | テーブルオブジェクト!"フィールド名" 小さい順。 | |
^レコードの並べ替え:降順^ | ^レコードの並べ替え:降順^ | ||
| テーブルオブジェクト!"フィールド名" 大きい順。 | | | テーブルオブジェクト!"フィールド名" 大きい順。 | | ||
ライン 309: | ライン 293: | ||
処理結果は[配列にする]命令を使うことで、テーブルオブジェクトの値を配列として取得できます。また、[数にする]命令を使うことで、テーブルオブジェクトの値を数値として取得できます。[数にする]命令は複数の数値が結果としてある場合には一番目の要素を返します。 | 処理結果は[配列にする]命令を使うことで、テーブルオブジェクトの値を配列として取得できます。また、[数にする]命令を使うことで、テーブルオブジェクトの値を数値として取得できます。[数にする]命令は複数の数値が結果としてある場合には一番目の要素を返します。 | ||
- | 以下の例では、“自宅までの距離”の合計値を算出し、「結果の配列」という名前の配列として取得します。同様に、「結果の数値」という名前の変数に数値として取得しています。 | + | 以下の例では、"自宅までの距離"の合計値を算出し、「結果の配列」という名前の配列として取得します。同様に、「結果の数値」という名前の変数に数値として取得しています。 |
<code> | <code> | ||
ライン 328: | ライン 312: | ||
### 2.4.1 合計値 | ### 2.4.1 合計値 | ||
- | 指定した1つのフィールドの合計値を算出します。以下の例では、“自宅までの距離”フィールドの合計値を算出した結果をテーブルオブジェクトの1列目に表示しています。 | + | 指定した1つのフィールドの合計値を算出します。以下の例では、"自宅までの距離"フィールドの合計値を算出した結果をテーブルオブジェクトの1列目に表示しています。 |
<code> | <code> | ||
ライン 342: | ライン 326: | ||
### 2.4.2 平均値 | ### 2.4.2 平均値 | ||
- | 指定した1つのフィールドの平均値を算出します。以下の例では、“自宅までの距離”フィールドの平均値を算出した結果をテーブルオブジェクトの1列目に表示しています。 | + | 指定した1つのフィールドの平均値を算出します。以下の例では、"自宅までの距離"フィールドの平均値を算出した結果をテーブルオブジェクトの1列目に表示しています。 |
<code> | <code> | ||
ライン 354: | ライン 338: | ||
### 2.4.3 中央値 | ### 2.4.3 中央値 | ||
- | 指定した1つのフィールドの中央値を算出します。データが奇数個の場合は中央の値を返します。データが偶数個の場合は中央の2つの値の平均値を算出し返します。以下の例では、“自宅までの距離”フィールドの中央値をテーブルオブジェクトの1列目に表示しています。 | + | 指定した1つのフィールドの中央値を算出します。データが奇数個の場合は中央の値を返します。データが偶数個の場合は中央の2つの値の平均値を算出し返します。以下の例では、"自宅までの距離"フィールドの中央値をテーブルオブジェクトの1列目に表示しています。 |
<code> | <code> | ||
ライン 368: | ライン 352: | ||
### 2.4.4 最頻値 | ### 2.4.4 最頻値 | ||
- | 指定した1つのフィールドの最頻値を算出します。最頻値が複数ある場合はすべてを結果として返します。以下の例では、“自宅までの距離”フィールドの最頻値をテーブルオブジェクトの1列目に表示しています。 | + | 指定した1つのフィールドの最頻値を算出します。最頻値が複数ある場合はすべてを結果として返します。以下の例では、"自宅までの距離"フィールドの最頻値をテーブルオブジェクトの1列目に表示しています。 |
<code> | <code> | ||
ライン 381: | ライン 365: | ||
### 2.4.5 最小値 | ### 2.4.5 最小値 | ||
- | 指定した1つフィールドの最小値を算出します。以下の例では、“自宅までの距離”フィールドの最小値をテーブルオブジェクトの1列目に表示しています。 | + | 指定した1つフィールドの最小値を算出します。以下の例では、"自宅までの距離"フィールドの最小値をテーブルオブジェクトの1列目に表示しています。 |
<code> | <code> | ||
ライン 395: | ライン 379: | ||
### 2.4.6 最大値 | ### 2.4.6 最大値 | ||
- | 指定した1つのフィールドの最大値を算出します。以下の例では、“自宅までの距離”フィールドの最大値をテーブルオブジェクトの1列目に表示しています。 | + | 指定した1つのフィールドの最大値を算出します。以下の例では、"自宅までの距離"フィールドの最大値をテーブルオブジェクトの1列目に表示しています。 |
<code> | <code> | ||
ライン 409: | ライン 393: | ||
### 2.4.7 四分位数 | ### 2.4.7 四分位数 | ||
- | 第1四分位数は指定した1つのフィールドのデータを昇順に並べ、二等分した際の前半の中央値を算出します。第3四分位数は指定した1つのフィールドのデータを昇順に並べ、二等分した際の後半の中央値を算出します。以下の例では、“自宅までの距離”フィールドの第1四分位数および第3四分位数をそれぞれテーブルオブジェクトの1列目に表示しています。 | + | 第1四分位数は指定した1つのフィールドのデータを昇順に並べ、二等分した際の前半の中央値を算出します。第3四分位数は指定した1つのフィールドのデータを昇順に並べ、二等分した際の後半の中央値を算出します。以下の例では、"自宅までの距離"フィールドの第1四分位数および第3四分位数をそれぞれテーブルオブジェクトの1列目に表示しています。 |
<code> | <code> | ||
ライン 426: | ライン 410: | ||
### 2.4.8 分散 | ### 2.4.8 分散 | ||
- | 指定した1つフィールドの分散を算出します。以下の例では、“自宅までの距離”フィールドの分散を算出し、テーブルオブジェクトの1列目に表示しています。 | + | 指定した1つフィールドの分散を算出します。以下の例では、"自宅までの距離"フィールドの分散を算出し、テーブルオブジェクトの1列目に表示しています。 |
<code> | <code> | ||
ライン 439: | ライン 423: | ||
### 2.4.9 不偏分散 | ### 2.4.9 不偏分散 | ||
- | 指定した1つのフィールドの不偏分散を算出します。以下の例では、“自宅までの距離”フィールドの不偏分散を算出し、テーブルオブジェクトの1列目に表示しています。 | + | 指定した1つのフィールドの不偏分散を算出します。以下の例では、"自宅までの距離"フィールドの不偏分散を算出し、テーブルオブジェクトの1列目に表示しています。 |
<code> | <code> | ||
ライン 452: | ライン 436: | ||
### 2.4.10 共分散 | ### 2.4.10 共分散 | ||
- | 指定した2つのフィールド間の共分散を算出します。以下の例では、“自宅までの距離”フィールドと“読書冊数”フィールドの共分散を算出し、テーブルオブジェクトの1列目に表示しています。 | + | 指定した2つのフィールド間の共分散を算出します。以下の例では、"自宅までの距離"フィールドと"読書冊数"フィールドの共分散を算出し、テーブルオブジェクトの1列目に表示しています。 |
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
- | 2. 通学データ!"自宅までの距離" “読書冊数” 共分散 表示。 | + | 2. 通学データ!"自宅までの距離" "読書冊数" 共分散 表示。 |
</code> | </code> | ||
ライン 465: | ライン 449: | ||
### 2.4.11 不偏共分散 | ### 2.4.11 不偏共分散 | ||
- | 指定した2つのフィールド間の不偏共分散を算出します。以下の例では、“自宅までの距離”フィールドと“読書冊数”フィールドの不偏共分散を算出し、テーブルオブジェクトの1列目に表示しています。 | + | 指定した2つのフィールド間の不偏共分散を算出します。以下の例では、"自宅までの距離"フィールドと"読書冊数"フィールドの不偏共分散を算出し、テーブルオブジェクトの1列目に表示しています。 |
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
- | 2. 通学データ!"自宅までの距離" “読書冊数” 不偏共分散 表示。 | + | 2. 通学データ!"自宅までの距離" "読書冊数" 不偏共分散 表示。 |
</code> | </code> | ||
ライン 477: | ライン 461: | ||
### 2.4.12 偏差 | ### 2.4.12 偏差 | ||
- | 指定した1つのフィールドの偏差を算出します。以下の例では、“自宅までの距離”フィールドの偏差を算出し、テーブルオブジェクトの1列目に表示しています。 | + | 指定した1つのフィールドの偏差を算出します。以下の例では、"自宅までの距離"フィールドの偏差を算出し、テーブルオブジェクトの1列目に表示しています。 |
<code> | <code> | ||
ライン 491: | ライン 475: | ||
### 2.4.13 標準偏差 | ### 2.4.13 標準偏差 | ||
- | 指定した1つのフィールドの標準偏差を算出します。以下の例では、“自宅までの距離”フィールドの標準偏差を算出し、テーブルオブジェクトの1列目に表示しています。 | + | 指定した1つのフィールドの標準偏差を算出します。以下の例では、"自宅までの距離"フィールドの標準偏差を算出し、テーブルオブジェクトの1列目に表示しています。 |
<code> | <code> | ||
ライン 504: | ライン 488: | ||
### 2.4.14 不偏標準偏差 | ### 2.4.14 不偏標準偏差 | ||
- | 指定した1つのフィールドの不偏標準偏差を算出します。以下の例では、“自宅までの距離”フィールドの不偏標準偏差を算出し、テーブルオブジェクトの1列目に表示しています。 | + | 指定した1つのフィールドの不偏標準偏差を算出します。以下の例では、"自宅までの距離"フィールドの不偏標準偏差を算出し、テーブルオブジェクトの1列目に表示しています。 |
<code> | <code> | ||
ライン 517: | ライン 501: | ||
### 2.4.15 相関係数 | ### 2.4.15 相関係数 | ||
- | 指定した1つのフィールドの相関係数を算出します。以下の例では、“自宅までの距離”フィールドと“読書冊数”フィールドの相関係数を算出し、テーブルオブジェクトの1列目に表示しています。 | + | 指定した1つのフィールドの相関係数を算出します。以下の例では、"自宅までの距離"フィールドと"読書冊数"フィールドの相関係数を算出し、テーブルオブジェクトの1列目に表示しています。 |
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
- | 2. 通学データ!"自宅までの距離" “読書冊数” 相関係数 表示。 | + | 2. 通学データ!"自宅までの距離" "読書冊数" 相関係数 表示。 |
</code> | </code> | ||
ライン 530: | ライン 514: | ||
### 2.4.16 度数 | ### 2.4.16 度数 | ||
- | 指定した1つのフィールドの度数(件数)を算出します。以下の例では、“住所”フィールドの度数を算出し、結果を表示しています。[度数]命令で得られる結果は、1列目が指定したフィールド(この例では“住所”フィールド)の重複なしデータ、2列目が1列目に対応する度数から構成されるテーブルオブジェクトです。 | + | 指定した1つのフィールドの度数(件数)を算出します。以下の例では、"住所"フィールドの度数を算出し、結果を表示しています。[度数]命令で得られる結果は、1列目が指定したフィールド(この例では"住所"フィールド)の重複なしデータ、2列目が1列目に対応する度数から構成されるテーブルオブジェクトです。 |
<code> | <code> | ||
ライン 544: | ライン 528: | ||
### 2.4.17 度数分布・度数分布表 | ### 2.4.17 度数分布・度数分布表 | ||
- | 指定した1つのフィールドの度数分布を返します。級数(区画)を算出し、級数ごとに度数を算出します。級数はスタージェスの公式を用いて算出されます。以下の例では、“自宅までの距離”フィールドの度数分布を算出し表示しています。[度数分布]命令で得られる結果は、1列目が階級、2列目が度数から構成されるテーブルオブジェクトです。 | + | 指定した1つのフィールドの度数分布を返します。級数(区画)を算出し、級数ごとに度数を算出します。級数はスタージェスの公式を用いて算出されます。以下の例では、"自宅までの距離"フィールドの度数分布を算出し表示しています。[度数分布]命令で得られる結果は、1列目が階級、2列目が度数から構成されるテーブルオブジェクトです。 |
<code> | <code> | ||
ライン 582: | ライン 566: | ||
### 2.4.18 クロス集計・クロス集計表 | ### 2.4.18 クロス集計・クロス集計表 | ||
- | 指定した2つのフィールド間のクロス集計を行った結果を返します。合計を算出せずに集計する場合は[クロス集計]命令をします。以下の例では、“通学手段”フィールドと“住所”のクロス集計を算出し、表示しています。 | + | 指定した2つのフィールド間のクロス集計を行った結果を返します。合計を算出せずに集計する場合は[クロス集計]命令をします。以下の例では、"通学手段"フィールドと"住所"のクロス集計を算出し、表示しています。 |
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
- | 2. 通学データ!"通学手段" “住所” クロス集計 表示。 | + | 2. 通学データ!"通学手段" "住所" クロス集計 表示。 |
</code> | </code> | ||
ライン 596: | ライン 580: | ||
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
- | 2. 通学データ!"通学手段" “住所” クロス集計表 表示。 | + | 2. 通学データ!"通学手段" "住所" クロス集計表 表示。 |
</code> | </code> | ||
ライン 610: | ライン 594: | ||
## 2.5 グラフ描画機能 | ## 2.5 グラフ描画機能 | ||
- | 棒グラフや円グラフなど、テーブルオブジェクトデータから様々なグラフオブジェクトを生成できます。軸のタイトルは自動で設定されますが、必要に応じて後述する[縦軸タイトル変更]と[横軸タイトル変更]の命令を使って変更してください。 | + | 棒グラフや円グラフなど、テーブルオブジェクトから様々なグラフオブジェクトを生成できます。グラフオブジェクトは、[縦軸タイトル]と[横軸タイトル]命令などで必要な設定を行った後、[描画]命令で画面に表示します。 |
ライン 627: | ライン 611: | ||
そして「結果」のテーブルオブジェクトから棒グラフを作成し、画面に描画しています。 | そして「結果」のテーブルオブジェクトから棒グラフを作成し、画面に描画しています。 | ||
- |  | + | {{:pasted:20180105-085320.png}} |
ライン 638: | ライン 623: | ||
</code> | </code> | ||
- | まず、住所ごとの通学手段の利用人数(度数)を求めるために、[クロス集計]命令を使って “通学手段”と“住所”のクロス集計結果を算出します。ここでは、1列目が横軸に利用する“通学手段”フィールドの重複なしデータ、2列目以降が住所別の通学手段の度数から構成されるテーブルオブジェクトが得られ、「結果」と名付けられたテーブルオブジェクトに代入しています。そして最後に、得られた「結果」から棒グラフを描画しています。 | + | まず、住所ごとの通学手段の利用人数(度数)を求めるために、[クロス集計]命令を使って "通学手段"と"住所"のクロス集計結果を算出します。ここでは、1列目が横軸に利用する"通学手段"フィールドの重複なしデータ、2列目以降が住所別の通学手段の度数から構成されるテーブルオブジェクトが得られ、「結果」と名付けられたテーブルオブジェクトに代入しています。そして最後に、得られた「結果」から棒グラフを描画しています。 |
 |  | ||
- | + | {{:pasted:20180105-131937.png?800}} | |
- |  | + | |
- | フィールド名を指定すると、指定したフィールドの棒グラフのみ描画できます。以下の例では、“西宮市”と“京都市”の通学手段に関する棒グラフを描画しています。 | + | フィールド名を指定すると、指定したフィールドの棒グラフのみ描画できます。以下の例では、"西宮市"と"京都市"の通学手段に関する棒グラフを描画しています。 |
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
2. 結果=通学データ!"通学手段" "住所" クロス集計。 | 2. 結果=通学データ!"通学手段" "住所" クロス集計。 | ||
- | 3. 結果!”西宮市” “京都市” 棒グラフ 描画。 | + | 3. 結果!"西宮市" "京都市" 棒グラフ 描画。 |
</code> | </code> | ||
+ | {{:pasted:20180105-132255.png}} | ||
^棒グラフの描画^ | ^棒グラフの描画^ | ||
ライン 667: | ライン 652: | ||
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
- | 2. 結果=通学データ!"年度" "通学手段" クロス集計。 | + | 2. 結果=通学データ!"通学手段" "年度" クロス集計。 |
3. 結果!積み上げ棒グラフ 描画。 | 3. 結果!積み上げ棒グラフ 描画。 | ||
</code> | </code> | ||
- | まず、年度ごとの通学手段の利用人数(度数)を求めるために、[クロス集計]命令を使って “通学手段”と“年度”のクロス集計結果を算出します。ここでは、1列目が横軸に利用する“通学手段”フィールドの重複なしデータ、2列目以降が年度別の通学手段の度数から構成されるテーブルオブジェクトが得られ、「結果」と名付けられたテーブルオブジェクトに代入しています。 | + | まず、年度ごとの通学手段の利用人数(度数)を求めるために、[クロス集計]命令を使って"通学手段"と"年度"のクロス集計結果を算出します。ここでは、1列目が横軸に利用する"通学手段"フィールドの重複なしデータ、2列目以降が年度別の通学手段の度数から構成されるテーブルオブジェクトが得られ、「結果」と名付けられたテーブルオブジェクトに代入しています。 |
 |  | ||
- | 最後に、得られた「結果」から棒グラフを描画しています。 | + | 最後に、得られた「結果」から積み上げ棒グラフを描画しています。 |
+ | {{:pasted:20180105-133416.png}} | ||
- |  | ||
- | + | また、フィールド名を指定すると、指定したフィールドの積み上げ棒グラフのみ描画できます。以下の例では、"2015"年度の積み上げ棒グラフのみを描画しています。 | |
- | また、フィールド名を指定すると、指定したフィールドの積み上げ棒グラフのみ描画できます。以下の例では、“2015”年度の積み上げ棒グラフのみを描画しています。 | + | |
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
- | 2. 結果=通学データ!"年度" "通学手段" クロス集計。 | + | 2. 結果=通学データ!"通学手段" "年度" クロス集計。 |
3. 結果!"2015" 積み上げ棒グラフ 描画。 | 3. 結果!"2015" 積み上げ棒グラフ 描画。 | ||
</code> | </code> | ||
+ | {{:pasted:20180105-133430.png}} | ||
^積み上げ棒グラフの描画^ | ^積み上げ棒グラフの描画^ | ||
ライン 697: | ライン 682: | ||
### 2.5.3 ヒストグラム | ### 2.5.3 ヒストグラム | ||
- | 指定した1つのフィールドのデータからヒストグラムを描画します。引数としてテーブルオブジェクトの持つフィールド名を1つ指定します。以下の例では、“自宅までの距離”からヒストグラムを描画しています。 | + | 指定した1つのフィールドのデータからヒストグラムを描画します。引数としてテーブルオブジェクトの持つフィールド名を1つ指定します。以下の例では、"自宅までの距離"からヒストグラムを描画しています。 |
<code> | <code> | ||
ライン 704: | ライン 689: | ||
</code> | </code> | ||
+ | {{:pasted:20180105-134425.png}} | ||
^ヒストグラム^ | ^ヒストグラム^ | ||
ライン 710: | ライン 696: | ||
### 2.5.4 散布図 | ### 2.5.4 散布図 | ||
- | 指定した第1引数を横軸、第2引数を縦軸とした散布図を描画します。引数としてテーブルオブジェクトの持つフィールド名を2つ指定します。以下の例では、“自宅までの距離”と“読書冊数”から散布図を描画しています。また、命令を追加することで線形近似直線を表示したり、グリッド線を消したりすることができます。 | + | 指定した第1引数を横軸、第2引数を縦軸とした散布図を描画します。引数としてテーブルオブジェクトの持つフィールド名を2つ指定します。以下の例では、"自宅までの距離"と"読書冊数"から散布図を描画しています。また、命令を追加することで線形近似直線を表示したり、グリッド線を消したりすることができます。 |
<code> | <code> | ||
ライン 717: | ライン 703: | ||
</code> | </code> | ||
+ | {{:pasted:20180105-134702.png}} | ||
^散布図^ | ^散布図^ | ||
ライン 731: | ライン 718: | ||
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
- | 2. 結果=通学データ!"年度" "通学手段" クロス集計。 | + | 2. 結果=通学データ!"通学手段" "年度" クロス集計。 |
3. 結果!"2015" 円グラフ 描画。 | 3. 結果!"2015" 円グラフ 描画。 | ||
</code> | </code> | ||
- | まず、2015年度の通学手段の人数(度数)を求めるために、[クロス集計]命令を使って “通学手段”と“年度”のクロス集計結果を算出します。ここでは、1列目が横軸に利用する“通学手段”フィールドの重複なしデータ、2列目以降が年度別の通学手段の度数から構成されるテーブルオブジェクトが得られ、「結果」と名付けられたテーブルオブジェクトに代入しています。 | + | まず、2015年度の通学手段の人数(度数)を求めるために、[クロス集計]命令を使って "通学手段"と"年度"のクロス集計結果を算出します。ここでは、1列目が横軸に利用する"通学手段"フィールドの重複なしデータ、2列目以降が年度別の通学手段の度数から構成されるテーブルオブジェクトが得られ、「結果」と名付けられたテーブルオブジェクトに代入しています。 |
 |  | ||
- | 最後に、「結果」と名付けられたテーブルオブジェクトの2列目のフィールド名“2015”を引数として指定し、円グラフを描画しています。 | + | 最後に、「結果」と名付けられたテーブルオブジェクトの2列目のフィールド名"2015"を引数として指定し、円グラフを描画しています。 |
- | + | ||
- |  | + | |
+ | {{:pasted:20180105-134903.png}} | ||
ライン 759: | ライン 745: | ||
</code> | </code> | ||
- | まず、年度ごとの通学手段の利用人数(度数)を求めるために、[クロス集計]命令を使って “通学手段”と“年度”のクロス集計結果を算出します。ここでは、1列目が横軸に利用する“通学手段”フィールドの重複なしデータ、2列目以降が年度別の通学手段の度数から構成されるテーブルオブジェクトが得られ、「結果」と名付けられたテーブルオブジェクトに代入しています。 | + | まず、年度ごとの通学手段の利用人数(度数)を求めるために、[クロス集計]命令を使って "通学手段"と"年度"のクロス集計結果を算出します。ここでは、1列目が横軸に利用する"通学手段"フィールドの重複なしデータ、2列目以降が年度別の通学手段の度数から構成されるテーブルオブジェクトが得られ、「結果」と名付けられたテーブルオブジェクトに代入しています。 |
 |  | ||
- | 最後に、得られた「結果」から棒グラフを描画しています。 | + | 最後に、得られた「結果」から帯グラフを描画しています。 |
- |  | + | {{:pasted:20180105-135003.png}} |
- | また、フィールド名を指定すると、指定したフィールドの帯グラフのみ描画できます。以下の例では、“2015”年度の帯グラフのみを描画しています。 | + | また、フィールド名を指定すると、指定したフィールドの帯グラフのみ描画できます。以下の例では、"2015"年度の帯グラフのみを描画しています。 |
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
2. 結果=通学データ! "通学手段" "年度" クロス集計 表示。 | 2. 結果=通学データ! "通学手段" "年度" クロス集計 表示。 | ||
- | 3. 結果!”2015” 帯グラフ 描画。 | + | 3. 結果!"2015" 帯グラフ 描画。 |
</code> | </code> | ||
+ | |||
+ | {{:pasted:20180105-135055.png}} | ||
ライン 784: | ライン 772: | ||
### 2.5.7 箱ひげ図 | ### 2.5.7 箱ひげ図 | ||
- | 指定したテーブルオブジェクトの1列目のデータを横軸、2列目のデータを縦軸とした箱ひげ図を描画します。以下の例では、“通学手段”と“自宅までの距離”に関する箱ひげ図を描画しています。 | + | 指定したテーブルオブジェクトの1列目のデータを横軸、2列目のデータを縦軸とした箱ひげ図を描画します。以下の例では、"通学手段"と"自宅までの距離"に関する箱ひげ図を描画しています。 |
<code> | <code> | ||
ライン 791: | ライン 779: | ||
</code> | </code> | ||
- | + | {{:pasted:20180105-135141.png}} | |
- |  | + | |
^箱ひげ図の描画^ | ^箱ひげ図の描画^ | ||
ライン 798: | ライン 785: | ||
- | ## 2.6 描画に関するその他の機能 | + | ## 2.6 グラフオブジェクトの操作 |
- | 描画したグラフに対して様々な変更を行えます。 | + | 描画するグラフに対して様々な設定を行えます。 |
- | + | ### 2.6.1 縦軸間隔 | |
- | ### 2.6.1 原点の移動 | + | グラフの縦軸のメモリ間隔を設定します。 |
- | グラフを描画するときの原点(縦軸と横軸の交点)の位置を絶対座標で指定できます(円グラフの場合は中心が原点となります)。 | + | |
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
- | 2. 結果=通学データ!"自宅までの距離" "読書冊数" 散布図 描画。 | + | 2. 通学データ!"自宅までの距離" "読書冊数" 散布図 1 縦軸間隔 描画。 |
- | 3. 結果!100 -100 原点。 | + | |
</code> | </code> | ||
- | ^原点:原点を絶対座標で移動させる^ | ||
- | | グラフ!(横方向の位置) (縦方向の位置) 原点。 | | ||
- | 以下のように、描画命令の実行の前に原点を指定することも可能です。 | + | ^縦軸間隔:グラフの縦軸のメモリ間隔を変更する^ |
+ | | グラフ!(縦軸のメモリ間隔) 縦軸間隔。 | | ||
+ | |||
+ | |||
+ | ### 2.6.2 横軸タイトル | ||
+ | グラフの横軸のタイトルを設定します。 | ||
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
- | 2. 通学データ!"自宅までの距離" "読書冊数" 散布図 100 -100 原点 描画。 | + | 2. 結果=通学データ!"自宅までの距離" "読書冊数" 散布図。 |
+ | 3. 結果!"通学距離" 横軸タイトル 描画。 | ||
</code> | </code> | ||
- | ### 2.6.2 移動する | + | ^横軸タイトル変更:グラフの横軸のタイトルを設定する^ |
- | グラフを描画するときの原点(縦軸と横軸の交点)の位置を相対座標で指定できます。描画命令の実行の | + | | グラフ!"タイトル" 横軸タイトル。 | |
- | 前に原点を指定することも可能です(円グラフの場合は中心が原点となります)。 | + | |
+ | |||
+ | ### 2.6.3 縦軸タイトル | ||
+ | グラフの縦軸のタイトルを設定します(現在は縦書き文字に対応していないため、()などの記号は表示が崩れます)。 | ||
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
- | 2. 結果=通学データ!"自宅までの距離" "読書冊数" 散布図 描画。 | + | 2. 結果=通学データ!"自宅までの距離" "読書冊数" 散布図。 |
- | 3. 結果!100 -100 移動する。 | + | 3. 結果!"一月の読書冊数" 縦軸タイトル 描画。 |
</code> | </code> | ||
- | ^移動する:原点を相対座標で移動させる^ | + | ^縦軸タイトル:グラフの縦軸のタイトルを設定する^ |
- | | グラフ!(横方向の位置) (縦方向の位置) 移動する。 | | + | | グラフ!"タイトル" 縦軸タイトル。 | |
- | + | ### 2.6.4 位置の指定 | |
- | ### 2.6.3 縦軸間隔 | + | グラフを描画するときの原点(縦軸と横軸の交点)の位置を絶対座標で指定できます(円グラフの場合は中心が原点となります)。 |
- | グラフの縦軸のメモリ間隔を変更できます。 | + | |
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
- | 2. 通学データ!"自宅までの距離" "読書冊数" 散布図 1 縦軸間隔 描画。 | + | 2. 結果=通学データ!"自宅までの距離" "読書冊数" 散布図 100 -100 位置 描画。 |
</code> | </code> | ||
+ | ^位置:原点を絶対座標で移動させる^ | ||
+ | | グラフ!(横方向の位置) (縦方向の位置) 位置。 | | ||
- | + | ### 2.6.5 移動する | |
- | ^縦軸間隔:グラフの縦軸のメモリ間隔を変更する^ | + | グラフを描画するときの原点(縦軸と横軸の交点)の位置を相対座標で指定します(円グラフの場合は中心が原点となります)。 |
- | | 任意のグラフ!(縦軸のメモリ間隔) 縦軸間隔。 | | + | |
- | + | ||
- | + | ||
- | ### 2.6.4 横軸タイトル変更 | + | |
- | グラフの横軸のタイトルを変更します。 | + | |
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
- | 2. 結果=通学データ!"自宅までの距離" "読書冊数" 散布図 描画。 | + | 2. 結果=通学データ!"自宅までの距離" "読書冊数" 散布図 100 -100 移動する 描画。 |
- | 3. 結果!"通学距離" 横軸タイトル変更。 | + | |
</code> | </code> | ||
- | ^横軸タイトル変更:グラフの横軸のタイトルを変更する^ | + | ^移動する:原点を相対座標で移動させる^ |
- | | グラフ!"新しいタイトル" 横軸タイトル変更。 | | + | | グラフ!(横方向の位置) (縦方向の位置) 移動する。 | |
- | + | ### 2.6.6 描画 | |
- | ### 2.6.5 縦軸タイトルの変更 | + | グラフオブジェクトからグラフを画面に出力します。 |
- | グラフの縦軸のタイトルを変更します(現在は縦書き文字に対応していないため、()などの記号は表示が崩れます)。 | + | |
<code> | <code> | ||
1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | 1. 通学データ=テーブル!"data/school.tsv" ファイルから作る。 | ||
- | 2. 結果=通学データ!"自宅までの距離" "読書冊数" 散布図 描画。 | + | 2. 結果=通学データ!"自宅までの距離" "読書冊数" 散布図 描画。 |
- | 3. 結果!"一月の読書冊数" 縦軸タイトル変更。 | + | |
</code> | </code> | ||
- | + | ^描画:画面にグラフを出力する^ | |
- | ^縦軸タイトルの変更:グラフの縦軸のタイトルを変更する^ | + | | グラフオブジェクト!描画。 | |
- | | グラフ!"新しいタイトル" 縦軸タイトル変更。 | | + | |