gnuplotで箱ひげ図を作成する

こんてんつ

gnuplotで箱ひげ図を作成するコードを紹介する。

  • 最低限のコード
  • 当サイトのフォーマットを使った出力

最低限のコード

サンプルデータ

10、12、16、19才の身長のサンプルデータdata.datを利用する。データは架空のもの。

#data.dat
#age10  age12   age16   age19
153 153 171 182
163 165 174 181
159 164 180 194
163 180 177 194
160 175 177 171
161 170 170 185
146 173 175 178
169 177 179 173
149 158 172 175
165 171 173 187
168 162 177 197
151 152 178 188
170 176 177 178
155 161 171 183
162 152 176 185

コード

plot 'data.dat' using (10.0):1:(0.8) with boxplot,\
'data.dat' using (12.0):2:(0.8) with boxplot,\
'data.dat' using (16.0):3:(0.8) with boxplot,\
'data.dat' using (19.0):4:(0.8) with boxplot

出力

f:id:norunblog:20220212125840j:plain

解説

usingの後の部分で、プロットする位置、データ、幅の3つを指定している。

using (10.0):1:(0.8) with boxplot
(横軸10.0の場所に):1列目のデータを:(幅0.8でプロットする)

当サイトのフォーマットを使った出力

当サイトのフォーマットはこちら。

contents-open.hatenablog.com

コード

load 'C:\Users\norun\Desktop\gnu\pre\subst_underline.txt'
load 'C:\Users\norun\Desktop\gnu\pre\config_letter_style.txt'
load 'C:\Users\norun\Desktop\gnu\pre\set_style_line_1.txt'

##### 軸、凡例設定 #####

set key left top
set key Left
set key reverse
#set key invert
#set key spacing 0.7

#set grid

set xlabel  "x-label"
set ylabel  "y-label"
#set xrange[0:1000]
#set yrange[0:1000]
#set xtics 200
#set ytics 200

#load 'C:/Users/norun/Desktop/gnu/pre/config_y2_letter_style.txt'
#set y2label "y2-label" rotate by 270
#set y2range[0:500]
#set y2tics 100

##### 出力設定とサイズ #####

set size ratio 1 1
set terminal png size 1920,1920

##### 結果出力、プロット #####

INPUT_DATA_DIREC = "C:/Users/norun/Desktop/gnu/hakohige_test"
OUTPUT_DIREC_PATH = "C:/Users/norun/Desktop"

cd INPUT_DATA_DIREC
INPUT_DATA_NAME = "data.dat"

GRAPH_NAME = "name_name"

set output sprintf('%s/%s.png',OUTPUT_DIREC_PATH,GRAPH_NAME)
set title strsubst(GRAPH_NAME, "_", "\\_")

plot INPUT_DATA_NAME using (10.0):1:(0.8) with boxplot ls 1 notitle,\
INPUT_DATA_NAME using (12.0):2:(0.8) with boxplot ls 1 notitle,\
INPUT_DATA_NAME using (16.0):3:(0.8) with boxplot ls 1 notitle,\
INPUT_DATA_NAME using (19.0):4:(0.8) with boxplot ls 1 notitle

set output

reset

出力

f:id:norunblog:20220212153935p:plain