プログラミング言語「ドリトル」

大阪電気通信大学 兼宗研究室

ユーザ用ツール

サイト用ツール


ch_stat

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン 両方とも次のリビジョン
ch_stat [2018/01/02 10:07]
kanemune
ch_stat [2018/01/06 16:10]
kanemune
ライン 1: ライン 1:
-# ドリトル 統計機能V3.22+# ドリトル 統計機能 ​(V3.22)
 ドリトルは教育用に設計されたオブジェクト指向型のプログラミング言語です。本文書ではドリトルの統計機能について解説しています。 ドリトルは教育用に設計されたオブジェクト指向型のプログラミング言語です。本文書ではドリトルの統計機能について解説しています。
  
ライン 30: ライン 30:
 リスト!作る。 リスト!作る。
 </​code>​ </​code>​
 +
 +{{:​pasted:​20180106-070835.png}}
  
  
ライン 45: ライン 47:
 1. 表示エリア=リスト!作る。 1. 表示エリア=リスト!作る。
 </​code>​ </​code>​
 +
 +{{:​pasted:​20180106-070835.png}}
  
 実行すると、画面に変化はありませんが、作成したリストには「表示エリア」と言う名前がついています。この名前は変数とも呼れます。複数のオブジェクトに同じ名前をつけた場合には、その名前は最後のオブジェクトの名前になります。 実行すると、画面に変化はありませんが、作成したリストには「表示エリア」と言う名前がついています。この名前は変数とも呼れます。複数のオブジェクトに同じ名前をつけた場合には、その名前は最後のオブジェクトの名前になります。
ライン 57: ライン 61:
 </​code>​ </​code>​
  
- +{{:​pasted:​20180106-070906.png}}
-|120|+
  
  
ライン 78: ライン 81:
 2. 表示エリア!120 書く 150 書く。 2. 表示エリア!120 書く 150 書く。
 </​code>​ </​code>​
 +
 +{{:​pasted:​20180106-070924.png}}
 +
  
 上の2つのプログラムは、どちらのプログラムを実行しても同じ結果が得られます。下の方のプログラムでは、「表示エリア」と名前の付いたリストオブジェクトに対して『120 書く』という命令を実行し、120を書き込んでいます。さらに、120を書き込んだ結果のオブジェクトに対して『150 書く』という命令を実行しています。 上の2つのプログラムは、どちらのプログラムを実行しても同じ結果が得られます。下の方のプログラムでは、「表示エリア」と名前の付いたリストオブジェクトに対して『120 書く』という命令を実行し、120を書き込んでいます。さらに、120を書き込んだ結果のオブジェクトに対して『150 書く』という命令を実行しています。
ライン 111: ライン 117:
 ここではドリトルに標準で用意されている「data/​school.tsv」というサンプルデータを読み込む例で解説します。このデータは、西宮市の高等学校に通う生徒のデータで、「出席番号」「通学手段」「住所」「読書冊数」「自宅までの距離」「年度」という6つのフィールドから構成されています。各データはタブで区切られています。 ここではドリトルに標準で用意されている「data/​school.tsv」というサンプルデータを読み込む例で解説します。このデータは、西宮市の高等学校に通う生徒のデータで、「出席番号」「通学手段」「住所」「読書冊数」「自宅までの距離」「年度」という6つのフィールドから構成されています。各データはタブで区切られています。
  
-![](/static/img/pixel.gif) +![](https://d2mxuefqeaa7sj.cloudfront.net/s_676A7AF6E58095E624577980796AE435950DBB3E72A9266C6037F78C63F1834F_1514856558321_file.png?400)
  
 サンプルデータ(school.tsv) サンプルデータ(school.tsv)
ライン 141: ライン 146:
 次のようなエラーが表示された場合は、2行目で未定義オブジェクトに「表示」が送られていますので、1行目で通学データに未定義オブジェクトが代入されたことがわかります。1行目の「ファイルから作る」が正しく実行されてテーブルオブジェクトを返すのではなく、正しく実行されずに未定義オブジェクトを返していますので、その理由を検討してください。この例では、「data/​school.tsv」が「school.tsv」と書かれていることが原因でした。 次のようなエラーが表示された場合は、2行目で未定義オブジェクトに「表示」が送られていますので、1行目で通学データに未定義オブジェクトが代入されたことがわかります。1行目の「ファイルから作る」が正しく実行されてテーブルオブジェクトを返すのではなく、正しく実行されずに未定義オブジェクトを返していますので、その理由を検討してください。この例では、「data/​school.tsv」が「school.tsv」と書かれていることが原因でした。
  
- +{{ :​image_preview.png?​direct&​400 |}}
-![](/​static/​img/​pixel.gif)+
  
  
ライン 590: ライン 594:
 ## 2.5 グラフ描画機能 ## 2.5 グラフ描画機能
  
-棒グラフや円グラフなど、テーブルオブジェクトデータから様々なグラフオブジェクトを生成できます。軸のタイ自動で設定されますが必要に応じて後述する[縦軸タイトル変更]と[横軸タイトル変更]命令を使て変更てください+棒グラフや円グラフなど、テーブルオブジェクトから様々なグラフオブジェクトを生成できます。グラフオブジェクトは、[縦軸タイトル]と[横軸タイトル]命令などで必要な設定た後、[描画]命令で画面に表示ます
  
  
 ### 2.5.1 棒グラフ ### 2.5.1 棒グラフ
-指定したテーブルオブジェクトの1列目のデータを横軸、2列目以降のデータを縦軸とした棒グラフを描画します。以下の例では、各通学手段の利用人数を棒グラフで描画するために、まず[度数]命令を使い、通学手段の度数を算出しています。+指定したテーブルオブジェクトの1列目のデータを横軸、2列目以降のデータを縦軸とした棒グラフを描画します。以下の例では、各通学手段の利用人数を棒グラフで描画するために、[度数]命令通学手段ごとの度数を算出し、「結果」という変数にテーブルオブジェクトとして代入しています。
  
 <​code>​ <​code>​
ライン 605: ライン 609:
 ![](https://​d2mxuefqeaa7sj.cloudfront.net/​s_500AF4A80CACFE7273E1414E95B256AD26E78954EB706D0B1EE534E4E7C13285_1514808001509_file.png?​100) ![](https://​d2mxuefqeaa7sj.cloudfront.net/​s_500AF4A80CACFE7273E1414E95B256AD26E78954EB706D0B1EE534E4E7C13285_1514808001509_file.png?​100)
  
 +そして「結果」のテーブルオブジェクトから棒グラフを作成し、画面に描画しています。
  
-[度数]命令で得られる結果は3.4.16項で述べたように1列目が指定したフィールドの重複なしのデータ(この例では“通学手段”フィールドのデータ)、2列目が対応する度数から構成されるテーブルオブジェクトです。得られたテーブルオブジェクトを「結果」という変数に代入しています。+{{:​pasted:​20180105-085320.png}}
  
-そして最後に「結果」と名付けられたテーブルオブジェクトから棒グラフを描画しています。 
- 
-![](https://​d2mxuefqeaa7sj.cloudfront.net/​s_500AF4A80CACFE7273E1414E95B256AD26E78954EB706D0B1EE534E4E7C13285_1514808001513_file.png?​400) 
  
  
ライン 626: ライン 628:
  
  
- +{{:pasted:​20180105-131937.png?800}}
-![](https://​d2mxuefqeaa7sj.cloudfront.net/​s_500AF4A80CACFE7273E1414E95B256AD26E78954EB706D0B1EE534E4E7C13285_1514808001538_file.png?600)+
  
  
ライン 638: ライン 639:
 </​code>​ </​code>​
  
 +{{:​pasted:​20180105-132255.png}}
  
 ^棒グラフの描画^ ^棒グラフの描画^
ライン 650: ライン 652:
 <​code>​ <​code>​
 1. 通学データ=テーブル!"​data/​school.tsv"​ ファイルから作る。 1. 通学データ=テーブル!"​data/​school.tsv"​ ファイルから作る。
-2. 結果=通学データ!"​年度"​ "​通学手段"​ クロス集計。+2. 結果=通学データ!"​通学手段"​ "​年度"​ クロス集計。
 3. 結果!積み上げ棒グラフ 描画。 3. 結果!積み上げ棒グラフ 描画。
 </​code>​ </​code>​
  
-まず、年度ごとの通学手段の利用人数(度数)を求めるために、[クロス集計]命令を使って “通学手段”と“年度”のクロス集計結果を算出します。ここでは、1列目が横軸に利用する“通学手段”フィールドの重複なしデータ、2列目以降が年度別の通学手段の度数から構成されるテーブルオブジェクトが得られ、「結果」と名付けられたテーブルオブジェクトに代入しています。+まず、年度ごとの通学手段の利用人数(度数)を求めるために、[クロス集計]命令を使って“通学手段”と“年度”のクロス集計結果を算出します。ここでは、1列目が横軸に利用する“通学手段”フィールドの重複なしデータ、2列目以降が年度別の通学手段の度数から構成されるテーブルオブジェクトが得られ、「結果」と名付けられたテーブルオブジェクトに代入しています。
  
 ![](https://​d2mxuefqeaa7sj.cloudfront.net/​s_500AF4A80CACFE7273E1414E95B256AD26E78954EB706D0B1EE534E4E7C13285_1514808001542_file.png?​200) ![](https://​d2mxuefqeaa7sj.cloudfront.net/​s_500AF4A80CACFE7273E1414E95B256AD26E78954EB706D0B1EE534E4E7C13285_1514808001542_file.png?​200)
  
  
-最後に、得られた「結果」から棒グラフを描画しています。 +最後に、得られた「結果」から積み上げ棒グラフを描画しています。
  
-![](/​static/​img/​pixel.gif)+{{:​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}}
  
 ^積み上げ棒グラフの描画^ ^積み上げ棒グラフの描画^
ライン 687: ライン 689:
 </​code>​ </​code>​
  
 +{{:​pasted:​20180105-134425.png}}
  
 ^ヒストグラム^ ^ヒストグラム^
ライン 700: ライン 703:
 </​code>​ </​code>​
  
 +{{:​pasted:​20180105-134702.png}}
  
 ^散布図^ ^散布図^
ライン 714: ライン 718:
 <​code>​ <​code>​
 1. 通学データ=テーブル!"​data/​school.tsv"​ ファイルから作る。 1. 通学データ=テーブル!"​data/​school.tsv"​ ファイルから作る。
-2. 結果=通学データ!"​年度"​ "​通学手段"​ クロス集計。+2. 結果=通学データ!"​通学手段"​ "​年度"​ クロス集計。
 3. 結果!"​2015"​ 円グラフ 描画。 3. 結果!"​2015"​ 円グラフ 描画。
 </​code>​ </​code>​
ライン 725: ライン 729:
 最後に、「結果」と名付けられたテーブルオブジェクトの2列目のフィールド名“2015”を引数として指定し、円グラフを描画しています。 最後に、「結果」と名付けられたテーブルオブジェクトの2列目のフィールド名“2015”を引数として指定し、円グラフを描画しています。
  
-![](/​static/​img/​pixel.gif) +{{:​pasted:​20180105-134903.png}}
  
  
ライン 747: ライン 750:
  
  
-最後に、得られた「結果」からグラフを描画しています。+最後に、得られた「結果」からグラフを描画しています。
  
-![](/​static/​img/​pixel.gif)+{{:​pasted:​20180105-135003.png}}
  
  
ライン 759: ライン 762:
 3. 結果!”2015” 帯グラフ 描画。 3. 結果!”2015” 帯グラフ 描画。
 </​code>​ </​code>​
 +
 +{{:​pasted:​20180105-135055.png}}
  
  
ライン 766: ライン 771:
  
  
-#### 3.5.7 箱ひげ図+### 2.5.7 箱ひげ図
 指定したテーブルオブジェクトの1列目のデータを横軸、2列目のデータを縦軸とした箱ひげ図を描画します。以下の例では、“通学手段”と“自宅までの距離”に関する箱ひげ図を描画しています。 指定したテーブルオブジェクトの1列目のデータを横軸、2列目のデータを縦軸とした箱ひげ図を描画します。以下の例では、“通学手段”と“自宅までの距離”に関する箱ひげ図を描画しています。
  
ライン 774: ライン 779:
 </​code>​ </​code>​
  
- +{{:​pasted:​20180105-135141.png}}
-![](/​static/​img/​pixel.gif)+
  
 ^箱ひげ図の描画^ ^箱ひげ図の描画^
ライン 781: ライン 785:
  
  
-### 3.6 描画に関するその他の機能 +## 2.6 グラフオブジェクトの操作 
-描画したグラフに対して様々な変更を行えます。+描画するグラフに対して様々な設定を行えます。
  
- +### 2.6.1 縦軸間隔 
-#### 3.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>​
  
  
-#### 3.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 位置の指定 
-#### 3.6.3 縦軸間隔 +グラフを描画するとき原点(縦軸と横軸の交点)位置絶対座標で指定できます(円グラフの場合は中心が原点となります)
-グラフの縦軸のメモリ間隔変更できます。+
  
 <​code>​ <​code>​
 1. 通学データ=テーブル!"​data/​school.tsv"​ ファイルから作る。 1. 通学データ=テーブル!"​data/​school.tsv"​ ファイルから作る。
-2. 通学データ!"​自宅までの距離"​ "​読書冊数"​ 散布図 ​1 縦軸間隔 描画。+2. 結果=通学データ!"​自宅までの距離"​ "​読書冊数"​ 散布図 100 -100 位置 描画。
 </​code>​ </​code>​
  
 +^位置:原点を絶対座標で移動させる^
 +| グラフ!(横方向の位置) (縦方向の位置) 位置。 |
  
- +### 2.6.5 移動する 
-^縦軸間隔:グラフの縦軸のメモリ間隔変更する+グラフを描画するとき原点(縦軸と横軸の交点)の位置を相対座標で指定します(円グラフの場合は中心が原点となります
-| 任意グラフ!(縦軸のメモリ間隔) 縦軸間隔。 | +
- +
- +
-#### 3.6.4 横軸タイトル変更 +
-グラフの横軸のタイトルを変更します。+
  
 <​code>​ <​code>​
 1. 通学データ=テーブル!"​data/​school.tsv"​ ファイルから作る。 1. 通学データ=テーブル!"​data/​school.tsv"​ ファイルから作る。
-2. 結果=通学データ!"​自宅までの距離"​ "​読書冊数"​ 散布図 描画。 +2. 結果=通学データ!"​自宅までの距離"​ "​読書冊数"​ 散布図 100 -100 移動する ​描画。
-3. 結果!"​通学距離"​ 横軸タイトル変更+
 </​code>​ </​code>​
  
  
-^横軸タイトル変更グラフの横軸のタイトル変更する^ +^移動する原点相対座標で移動させる^ 
-| グラフ!"​新しいタイトル"​ 軸タイトル変更。   ​|+| グラフ!(方向の位置) (縦方向の位置) 移動する。 |
  
- +### 2.6.6 描画 
-#### 3.6.5 縦軸タイトルの変更 +グラフオブジェクからグラフ画面出力します。
-グラフの縦軸のタイ変更します(現在は縦書き文字対応ていないため、()などの記号は表示が崩れます+
  
 <​code>​ <​code>​
 1. 通学データ=テーブル!"​data/​school.tsv"​ ファイルから作る。 1. 通学データ=テーブル!"​data/​school.tsv"​ ファイルから作る。
-2. 結果=通学データ!"​自宅までの距離"​ "​読書冊数"​ 散布図 描画。 +2. 結果=通学データ!"​自宅までの距離"​ "​読書冊数"​ 散布図 描画。
-3. 結果!"​一月の読書冊数"​ 縦軸タイトル変更+
 </​code>​ </​code>​
  
- +^描画画面にグラフを出力する^ 
-^縦軸タイトルの変更:グラフの縦軸のタイトル変更する^ +| グラフオブジェクト描画。 |
-| グラフ!"​新しいタイトル"​ 縦軸タイトル変更。    | +
- +
ch_stat.txt · 最終更新: 2018/01/06 21:49 by kanemune