CSVのデータを使って散布図とヒストグラムを作る
2015-02-09
QiitaRはじめに
R-Tips 見たら全部わかる
データの用意
ファイルの読み込み
> data <- read.csv('./plot_tfidf.csv', header=T, sep=",")
> data
a b
1 0.688 0.1930
2 0.701 0.7370
3 0.705 0.6860
4 0.732 0.0174
5 0.341 0.1390
read.csv
の引数のheader
にT[RUE]
かF[ALSE]
のどちらを与えるかでヘッダーの扱いが変わる
> data <- read.csv('./text.csv', header=F, sep=",")
> data
V1 V2
1 a b
2 0.688 0.193
3 0.701 0.737
4 0.705 0.686
5 0.732 0.0174
6 0.341 0.139
要素へのアクセス
> data[1]
a
1 0.688
2 0.701
3 0.705
4 0.732
5 0.341
> data$a
[1] 0.688 0.701 0.705 0.732 0.341
ヘッダーにT
を与えていると$
でアクセスできる
統計情報
簡単なものでsummary
が便利
> summary(data)
a b
Min. :0.3410 Min. :0.0174
1st Qu.:0.6880 1st Qu.:0.1390
Median :0.7010 Median :0.1930
Mean :0.6334 Mean :0.3545
3rd Qu.:0.7050 3rd Qu.:0.6860
Max. :0.7320 Max. :0.7370
それぞれ
Min
: 最小値1st Qu.
: 第一四分位数Median
: 中央値Mean
: 平均値3rd Qu.
: 第三四分位数Max.
: 最大値
第一四分位数は下から 1/4 の順位の値を指している
図
a
とb
の値をそれぞれ散布図にプロットします
そのまま
そのまま表示
> plot(data)
縦横を入れ替える
縦横入れ替え
> plot(rev(data))
軸の取る値を指定する
縦軸/横軸の範囲を決める
> plot(data, xlim=c(0,1),ylim=c(0,1))
このようにc(min, max)
で軸の取る値を決めることが出来ます
散布図の見た目を変える
見た目
> plot(data, xlim=c(0,1),ylim=c(0,1), pch=11, col="red", type="b", lty=5)
pch
で点の表示方法
lty
で線の表示方法
col
で色
type
で plot の形式
補助線
補助線1
> plot(data, xlim=c(0,1),ylim=c(0,1),
+ panel.first=(
+ grid(4, 6, lty=2, col="blue")))
補助線はpanel.first
に指定する
grid
の第一引数が x 軸を、第二引数が y 軸を何分割にするかを指定できる
もう少し自由に線を引いたり、目盛りに線を合わせるためには、
補助線
> plot(data, xlim=c(0,1),ylim=c(0,1),
+ panel.first=(
+ grid(
+ abline(h=seq(0.0, 1.0, by=0.1), col="red", lty=3),
+ abline(v=seq(0.0, 1.0, by=0.1), col="blue", lty=4)
+ )
+ )
+ )
のようにする いまいち挙動はわかっていない...
abline
で線を引く事ができて、v=
かh=
で x 軸、y 軸にそれぞれ垂直な線を指定できる
seq
は連続値を生成するっぽいので、このような図が表示される
ヒストグラム
データ
x <- rnorm(1000)
rnorm
で正規分布に従う乱数を生成できる
単純なヒストグラムは以下のように出来る
ヒストグラム1
> hist(x)
ヒストグラム2
> hist(x, main="test x", xlab="this is x", ylab="freq", label=T)
main
でタイトル、xlab
とylab
で x 軸と y 軸のラベル、label
で個数を表示できる
ヒストグラム3
> hist(x, main="test x", xlab="this is x", ylab="freq", label=T, breaks=50)
breaks
でいくつに分割するかを指定できる
from: https://qiita.com/petitviolet/items/9d95c687f38251534f1e