LoginSignup
11
18

More than 5 years have passed since last update.

CSVのデータを使って散布図とヒストグラムを作る

Posted at

はじめに

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の引数のheaderT[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の順位の値を指している

abの値をそれぞれ散布図にプロットします

そのまま

そのまま表示
> plot(data)

kobito.1423488496.563257.png

縦横を入れ替える

縦横入れ替え
> plot(rev(data))

kobito.1423488460.599465.png

軸の取る値を指定する

縦軸/横軸の範囲を決める
> plot(data, xlim=c(0,1),ylim=c(0,1))

kobito.1423488592.392276.png

このようにc(min, max)で軸の取る値を決めることが出来ます

散布図の見た目を変える

見た目
> plot(data, xlim=c(0,1),ylim=c(0,1), pch=11, col="red", type="b", lty=5)

kobito.1423488866.406983.png

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")))

kobito.1423489649.665450.png

補助線は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)
+     )
+   )
+ )

のようにする
いまいち挙動はわかっていない...

kobito.1423489480.073943.png

ablineで線を引く事ができて、v=h=でx軸、y軸にそれぞれ垂直な線を指定できる
seqは連続値を生成するっぽいので、このような図が表示される

ヒストグラム

データ
x <- rnorm(1000)

rnormで正規分布に従う乱数を生成できる

単純なヒストグラムは以下のように出来る

ヒストグラム1
> hist(x)

スクリーンショット 2015-02-09 23.02.33.png

ヒストグラム2
> hist(x, main="test x", xlab="this is x", ylab="freq", label=T)

スクリーンショット 2015-02-09 23.03.13.png

mainでタイトル、xlabylabでx軸とy軸のラベル、labelで個数を表示できる

ヒストグラム3
> hist(x, main="test x", xlab="this is x", ylab="freq", label=T, breaks=50)

スクリーンショット 2015-02-09 23.03.56.png

breaksでいくつに分割するかを指定できる

11
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
18