こんてんつ
Rでヒストグラムを書く方法を示す。Rの標準の書き方と、ggplotパッケージを用いた書き方を示す。
使用するデータ
架空の中学生の身長のデータ("histsample.dat")があるとする。
"histsample.dat" (文末に200行分のデータ有り) 1人目 166 2人目 171 3人目 162 4人目 164 5人目 163 … 119人目 170 120人目 155
R標準機能でのプロット
コード
dat<-read.table("histsample.dat",sep="\t",header=F,fileEncoding="utf-8") hist(dat[,2], breaks=seq(140,190,by=5), ylim=c(0,60), main="タイトル", xlab="横軸ラベル", ylab="縦軸ラベル", col="#993435") hist(dat[,2], binwidth=5, ylim=c(0,60), main="タイトル", xlab="横軸ラベル", ylab="縦軸ラベル", col="#993435")
出力結果
解説
breaks=seq(140,190,by=5)が、「140cm~190cmの範囲を5cm刻みでヒストグラムに分けよ」という意味。ylim=c(0,60)は「Y軸の範囲を0~60にしなさい」という意味。
ggplotパッケージを用いたプロット
コード
library(ggplot2) dat<-read.table("histsample.dat",sep="\t",header=F,fileEncoding="utf-8") colnames(dat) <- c("human","height") ggplot(dat, aes(x=height)) + geom_histogram(breaks=seq(140,190,by=5), fill="orange", colour="blue") + scale_y_continuous(breaks=seq(0,60,by=10),limits=c(0,60))
出力結果
アレンジ例
ggplot(dat, aes(x=height)) + geom_histogram(bins=10) ggplot(dat, aes(x=height)) + geom_histogram(binwidth=2)
使用データ
1人目 166 2人目 171 3人目 162 4人目 164 5人目 163 6人目 168 7人目 165 8人目 159 9人目 168 10人目 164 11人目 165 12人目 151 13人目 167 14人目 164 15人目 183 16人目 159 17人目 161 18人目 162 19人目 157 20人目 172 21人目 165 22人目 164 23人目 154 24人目 160 25人目 153 26人目 165 27人目 167 28人目 160 29人目 153 30人目 179 31人目 174 32人目 153 33人目 161 34人目 168 35人目 175 36人目 150 37人目 157 38人目 155 39人目 166 40人目 156 41人目 155 42人目 161 43人目 170 44人目 171 45人目 149 46人目 169 47人目 170 48人目 180 49人目 173 50人目 172 51人目 156 52人目 157 53人目 157 54人目 159 55人目 159 56人目 159 57人目 160 58人目 160 59人目 161 60人目 161 61人目 161 62人目 162 63人目 162 64人目 163 65人目 164 66人目 164 67人目 164 68人目 164 69人目 165 70人目 165 71人目 165 72人目 165 73人目 166 74人目 160 75人目 160 76人目 161 77人目 163 78人目 160 79人目 161 80人目 163 81人目 161 82人目 165 83人目 163 84人目 163 85人目 163 86人目 164 87人目 166 88人目 166 89人目 168 90人目 168 91人目 165 92人目 169 93人目 169 94人目 168 95人目 166 96人目 167 97人目 159 98人目 161 99人目 160 100人目 160 101人目 162 102人目 162 103人目 161 104人目 161 105人目 163 106人目 164 107人目 163 108人目 163 109人目 163 110人目 165 111人目 167 112人目 166 113人目 165 114人目 165 115人目 167 116人目 167 117人目 169 118人目 169 119人目 170 120人目 155