カテゴリー「ヒストグラム・度数分布多角形」の4件の記事

2014年3月 8日 (土)

gnuplot でヒストグラム・度数分布多角形づくり

 度数分布多角形(度数折れ線)が綺麗に作れるフリーソフトを探していたら、gnuplotでも度数分布多角形がかけることを知って、衝撃を受けた今日このごろです。しかもヒストグラムと重ねてできたりしてGood。
01_r

エクセルやcalcなどの表計算ソフトでも作れないことはないんですが、やはり見た目がね・・・。

ということで、今回はgnuplotで度数分布多角形 & ヒストグラムづくりネタ。関数の時と同様、折れ線自体の作成は難しくは無いんですが、格子線を表示させるための下地づくりがやはり面倒だったので、そのメモ。ちなみに作った下地は自分仕様なので、細かな注文は受け付けられません。(あんまり詳しくないので、質問されてもたぶん、十中八九答えられない・・・と思います。)

ちなみに「インストールの仕方」や基本的な「起動の仕方」については
gnuplot インストールメモ」や「gnuplot で比例・反比例のグラフを作ろう gnuplotの起動〜直線(一次関数)を表示させてみる」を参考にしてみてください。


それでは基本的な使い方はわかっているという仮定の元、下地づくりの前に、ヒストグラムの作り方の基本から。

 
次のものは自身で用意する必要があります。
 ○ヒストグラム・度数分布多角形の元の資料(データ)
  元データをスペース、または、タブで数値を区切ってテキストファイルで保存します。
 上記の例だと次のようなデータを使用しています。

142.5    0
147.5    7
152.5    16
157.5    17
162.5    8
167.5    9
172.5    3
177.5    2
182.5    0

1列目は階級値、2列目は階級の度数で設定しています。

データをエクセルなどの表計算ソフトで作成した場合は、メモ帳(などのエディタ)にコピペして保存すれば良いです。

ファイル名は何でも良いですが、保存場所はLinux系であれば、homeディレクトリに、Windowsではパスが通っているディレクトリ(フォルダ)です。

さて、今回はこのデータを『test.txt』名で保存したとして話を続けます。


〔度数分布多角形や、ヒストグラムを表示させてみる〕
gnuplotを起動させて次のようなコマンドを打つと度数分布多角形がかけます。

plot "./test.txt" using 1:2 with linespoints

11_

・・・。いろいろツッコミどころ満載ですが、とりあえずコマンドの説明をば。

plot "./test.txt"』の部分はカレントディレクトリ(./ はカレントディレクトリを指定している) にある test.txt ファイルのデータをプロット(点を打つ)するという意味です。
(カレントディレクトリとはなんじゃらほい、という人はページ下に載せた外部サイトが詳しいです。)


using 1:2』の部分は、test.txt ファイルの1列目を横軸(x軸)の数値として扱い、2列目を縦軸(y軸)の数値として扱うということです。

with linespoints』は、「折れ線+点」で表すという意味です。

これを『with lines』とすると、「折れ線のみ」に。
12_

これを『with boxes』とすると、ヒストグラムになります。
13_

度数分布多角形とヒストグラムを重ねるには、カンマで区切って次のように入力すると可能です。

plot "./test.txt" using 1:2 with linespoints , "./test.txt" using 1:2 with boxes

14__

さて、これだけでは見た目上アレなので、細かなところをいろいろと変更します。
好みは人それぞれなので、数値は便宜ご自身で変更してください。

〔目次〕
 (1)gnuplot でヒストグラム・度数分布多角形づくり
 (2)ヒストグラム:箱の色を変える・スタイルの設定
 (3)度数分布多角形:点の形を変える/線の色、太さを変える
 (4)ヒストグラム・度数分布多角形の下地づくり

 (他)gnuplotで、比例・反比例・放物線のグラフの作成
 (他)gnuplot で eps 取扱いメモ 
 
 
ブログ記事目次   
 
 
 
【外部サイト】
 ディレクトリとパス
  http://www.cc.kyoto-su.ac.jp/~hirai/text/path.html
 ファイル・ディレクトリの指定方法
  http://cns-guide.sfc.keio.ac.jp/2002/2/3/3.html
 コンピュータの基本操作/コンピュータにおける情報構造/ファイル・ディレクトリの指定方法
  http://cns-guide.sfc.keio.ac.jp/2001/2/3/4.html#SECTION03342000000000000000









 

gnuplot -ヒストグラム:箱の色を変える・スタイルの設定

〔箱の中を色で塗りつぶす〕

set style fill solid

と入力すると、良いです。
関数の時と同様、何かしらplotしないと設定が反映されないので、注意が必要です。
21___

 


〔箱の黒枠を設定する〕
上の状態だと棒がくっついて見えるので、見えづらい・・・。
そこで黒枠を設定。

set style fill solid border lc rgb "black"

と入力。
22___
うむ。いい感じ。

ところで、毎回「plot "./test.txt" using 1:2 with linespoints」を入力するのは面倒ですね。「↑」のキーを何回も打つと、今まで入力した履歴が表示されていきます。
再利用したい履歴を表示させた状態で「Enter」キーを押すとすんごい楽です。履歴で出てきたものを改変することも可能です。ここらへんはbashなどのターミナルと挙動は同じです。「bashのタブ補完」のような機能も一部働きます。

ただbashと違うのは、「delキー」がうまく働かないところ。「backspace」キーはちゃんと働くので、文字列を一部消すときはカーソルを移動させて「backspace」キーで削除、打ち直すと良いです。これについてはOS等の環境によって挙動が変わるかも。Windowsでは確認していないので、わかりません。



  
〔箱の色を変更する〕
箱の色を変えるには、

plot "./test.txt" using 1:2 with boxes lc rgb "light-cyan"

などとします。
23___

面倒ですが、箱の色については、plotコマンド毎に入力しなければなりません。

少しでも入力の楽がしたいという人は、スタイルを設定する方法があります。




〔描画スタイルの設定〕

set style line 1 lc rgb "light-cyan" lw 2

ちょっと説明します。

set style line 番号 lc rgb "light-cyan" lw 2

lc rgb "light-cyan"の部分は色の設定の部分。
lw 2 の部分は線の太さの部分で、この例だと「2」の太さに。
番号がやっかいなのですが、lineスタイル○番にこれらの値を設定するという感じです。

このように設定すると、plotコマンド時に以下のように省略ができます。

plot "./test.txt" using 1:2 with boxes ls 番号

24___style
これは「lineスタイル○番」の設定を読みだしてプロットするという感じです。
番号は今回は「1」で設定したので、「…with boxes」の後に「ls 1」を入力すれば、1番に設定されているものが読み出されて使用されます。もし「4」で設定したのなら、「…with boxes」の後に「ls 4」を入力します。

ちなみに、このやり方は関数の描画でも同じように出来ます。

set style line 2 lc rgb "black" lw 2
plot x ls 2 , 6/x ls 2

25__style



 
度数分布多角形も同様です。

set style line 3 lc rgb "black" lw 2 pt 7
gnuplot> plot "./test.txt" using 1:2 with linespoints ls 3

25__style_2

このようにすれば、plotコマンド毎にいちいち「〜 lc rgb "black" 〜」といった引数を入力しなくても済みます。


〔目次〕
(1)gnuplot でヒストグラム・度数分布多角形づくり
(2)gnuplot -ヒストグラム:箱の色を変える・スタイルの設定
(3)度数分布多角形:点の形を変える/線の色、太さを変える
(4)グリッドを設定する/下地づくり

(他)gnuplot グラフ-座標平面づくり


選べる線種や点種については、米澤 進吾 先生のサイトにすんごくいいページがあります。
 米澤 進吾 先生のサイト:ポイントや線や色の一覧を作る
  http://www.ss.scphys.kyoto-u.ac.jp/person/yonezawa/contents/program/gnuplot/testterminal.html

身も蓋もないんですが、ウチのブログを見るより、先生のサイトを見たほうがずっといいと思います。(泣)



gnuplot -度数分布多角形:点の形を変える/線の色、太さを変える

〔度数分布多角形の点の種類を変更する〕
11__2

デフォルトでは点が「×」なので、これを「●」変更。

plot "./test.txt" using 1:2 with linespoints pt 7

31__


「●」ではなく、「○」が良い人は、

plot "./test.txt" using 1:2 with linespoints pt 6

とします。
32__

「●」は7,「○」は6。その他の数字を入れると違う形の点になります。



〔度数分布多角形の線の太さを変更する〕

plot "./test.txt" using 1:2 with linespoints pt 7  lw 2

33__

「lw 2」は「linewidh 2」の略で、線の太さを「2」にします。


〔度数分布多角形の色を変更する〕

plot "./test.txt" using 1:2 with linespoints lc rgbcolor "black" pt 7 lw 2

と入力します。

34__

ちなみに、「毎回これを入力するのは面倒だ〜」という人は『ヒストグラム:箱の色を変える・スタイルの設定』の「スタイルの設定」のところを参照してください。

〔目次〕
(1)gnuplot でヒストグラム・度数分布多角形づくり
(2)ヒストグラム:箱の色を変える・スタイルの設定
(3)度数分布多角形:点の形を変える/線の色、太さを変える
(4)ヒストグラム・度数分布多角形の下地づくり





 

gnuplot -ヒストグラム・度数分布多角形の下地づくり

では、本命の下地づくり、ヒストグラム・度数分布多角形用の格子線の設定に入ります。
グラフのデータは前回の例からの流用です。
検索などでいきなりこのページに飛んできた人は、何のことかわからないと思います。
gnuplot でヒストグラム・度数分布多角形づくり』から読むと良いです。

このデータを元にして、説明を始めます。
ではまず、スタートは以下の状態から。
42__

ちなみに前回の続きになるので「plot "./test.txt" using 1:2 with linespoints」のコマンドを打ちなおしていません。
「↑」のキーを押して、履歴を利用しています。

 

格子線の設定の前に、まずは右上の凡例の削除から。
42____2


〔右上の凡例を消す〕

unset key

で消せます。
43__
うむ、すっきり。
次に縦線を入れましょう。

 
〔縦のグリッドを入れる〕

set grid xtics

とすると、縦線が入ります。
44__grid_x_2
ただこれだと、点線なので、太さ2の黒実線にしたい場合は以下のコマンドを打ちます。

set grid lt -1 lw 2

45__grid_x_2_2

もし、グリッドの間隔を変更したい場合は、

set xtics 10

のようにします。
45__grid_x_3_2
(上の例は10メモリごと)




 

〔横のグリッドを入れる〕
横の線を入れるには、

set grid ytics
set ytics 1

とします。
45__grid_y_1_2
ただ、これだとメモリが細かくて見づらいので2種類の格子線を設定します。

set grid ytics
set ytics 10
set grid mytics
set mytics 10
set grid lt -1 lw 2 , lt -1 lw 1

45__grid_y_2_2
補足説明をします。

「ytics」はy軸の主目盛を「mytics」はy軸の副目盛を意味します。

「set grid ytics」は主目盛に格子線を、
「set grid mytics」は副目盛に格子線を設定します。

「set ytics 10」は主目盛の間隔を10メモリずつにします。
「set mytics 10」は主目盛の間隔を10等分して、副目盛を割り振ります。

「set grid lt -1 lw 2 , lt -1 lw 1
前のlt -1 lw 2は、主格子線の線種と太さ、
後ろのlt -1 lw 1は、副格子線の線種と太さを設定します。

これで、だいぶ見やすくなりました。


 

ちなみに表示範囲を強制的に変更することも可能です。

plot [130:200][0:30] "./test.txt" using 1:2 with linespoints

45__grid_y_3_2

前の [130:200]は、横軸(x軸)方向の130〜200までの範囲を
後ろの[0:30]は、縦軸(y軸)方向の0〜30までの範囲を表示させるという意味です。

 

 

こんな感じでいかがでしょうか。
以上で下地づくりは終了です。
あとはご自身でいろいろと数値を調整してみてください。

45__grid_y_4_2

ちなみに設定値はスクリプトとして1つのファイルにまとめて保存し、それをロードして使うことが可能です。

スクリプト例は『個人的gnuplot用スクリプト』を参照してください。



 
〔目次〕
(1)gnuplot でヒストグラム・度数分布多角形づくり
(2)ヒストグラム:箱の色を変える・スタイルの設定
(3)度数分布多角形:点の形を変える/線の色、太さを変える
(4)ヒストグラム・度数分布多角形の下地づくり

(他)gnuplotで比例・反比例・放物線のグラフの作成
(補)個人的gnuplot用スクリプト


〔その他〕
 ・GeoGebra5 で回転体を作る!
  021

 
 
 
 
 
 
 
2021年5月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
無料ブログはココログ