Last updated: October 2008. Kajiyama                    [ 目次に戻る ]

plot()関数を使った散布図によるデータの視覚化 


  1. 測定値が量的データの視覚化・可視化はRに組み込んだ「plot関数」の仲間たちで

    ・「コンソール」 画面に,

    apropos("plot") #  と記述すると,Rに組み込みこまれている「plot関数」が表示される.

    > apropos("plot")
     [1] ".__C__recordedplot"  "assocplot"           "barplot"             "barplot.default"     "biplot"
     [6] "boxplot"             "boxplot.default"     "boxplot.matrix"      "boxplot.stats"       "cdplot"
    [11] "coplot"              "fourfoldplot"        "interaction.plot"    "lag.plot"            "matplot"   
    [16] "monthplot"           "mosaicplot"          "plot"                "plot.default"        "plot.density"
    [21] "plot.design"         "plot.ecdf"           "plot.lm"             "plot.mlm"            "plot.new"
    [26] "plot.spec"           "plot.spec.coherency" "plot.spec.phase"     "plot.stepfun"        "plot.ts"
    [31] "plot.TukeyHSD"       "plot.window"         "plot.xy"             "preplot"             "qqplot"
    [36] "recordPlot"          "replayPlot"          "savePlot"            "screeplot"           "spineplot"
    [41] "sunflowerplot"       "termplot"            "ts.plot"
    


  2. 使用する「iris」データの表示とデータ構造の確認

    ・「コンソール」 画面に,

    iris #  と記述すると,Rに組み込みこまれているFisherの研究で使われた「iris」データ 150サンプルが表示される.

    str (iris) #   と記述すると,「irisのデータ構造」が表示され,5変数の名前と,型が表示される.

    > str(iris)
    'data.frame':   150 obs. of  5 variables:
     $ Sepal.Length:  num  5.1 4.9 4.7 4.6 5   5.4 4.6 5   4.4 4.9 ...
     $ Sepal.Width :  num  3.5 3   3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
     $ Petal.Length:  num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
     $ Petal.Width :  num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
     $ Species     :  Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 ...
    

    ・Sepal.Length: num数値型 ・Sepal.Width : num数値型 ・Petal.Length: num数値型 ・Petal.Width : num数値型 ・Species: Factor因子型
      あやめの大きな3枚のはなびらは,「Sepal がく片」で,小さな3枚のはなびらが,「Petal 花びら」である.

    Sepal「がく片」の長さと幅・Petal「花びら」の長さと幅

    Species「あやめ3品種 [setosa・versicolor・virginica]」



  3. 散布図の関数 plot()の変数データを指定する方法と 散布図の表示パラメータを指定する方法


    plot ( データ名 ) # 全変数間の散布図を作図する

    plot ( データ名[ 1 : 4 ] ) # 変数1 〜 4の間の散布図を作図する

    plot ( 変数名m ~ 変数名n, data=データ名 ) # 変数名m X 変数名n の散布図を作図する

    plot( データ名 [,1], データ名 [,3] ) #第1変数[,1]と第3変数[,3]の散布図を作図する


    1. plot( iris ) #  と指定し,全ての変数を組み合わした2変数の散布図一覧表を作成する.



    2. plot( iris[1:4] ) #  と変数番号を指定し,変数1〜4の散布図一覧表を作成する.


      # 数量変数を組み合わした2変数の散布図の一覧を作成.


    3. plot( iris$Sepal.Length, pch=1 ) #  と1つだけの変数名を指定し,X軸がサンプル番号1〜150,Y軸が長さの一変数の散布図を作成する.


      1. プロットを記号または文字で表示するには.

        plot( iris$Sepal.Length, pch=4 ) # ×の記号は数字4

        plot(iris$Sepal.Length, pch = 3 ) # ○△■×の記号は数字
        plot(iris$Sepal.Length, pch = "A" ) # 文字

         
      2. プロットの記号または文字に色を付けるには.

        plot( iris$Sepal.Length, col="blue" ) #  と記述し,記号の色を指定する.

      3. プロットの記号または文字を直線で結ぶには.

        plot( iris$Sepal.Length, type="b" ) #  と記述すると,散布図を折れ線で結ぶ.

        plot( iris$Sepal.Length, type="l" ) #  と記述すると折れ線のみを表示する.
         

    4. plot( iris$Sepal.Length, iris$Sepal.Width ) # 2変数名を指定し,X軸がSepal.Length,Y軸がSepal.Widthの2変数の散布図を作成.


      1. タイトルやラベル名を同時に表現するには.

        plot( iris$Sepal.Length, iris$Sepal.Width, main="図のタイトル", sub="図のサブタイトル", xlab="x軸名", ylab="y軸名" )
         

      2. プロットの記号に色を付けるには.

        plot( iris$Sepal.Length, iris$Sepal.Width, pch = 21, bg = c("red", "green3", "blue") [unclass ( iris$Species ) ] )

        # と記述すると,「irisデータ」の種類別に色分けしたiris$Sepal.Length変数とiris$Sepal.Width変数の散布図が表示される.


      3. 散布図のx軸とy軸の範囲の最大値と最小値を指定する.

        plot( iris$Sepal.Length, iris$Sepal.Width, xlim=c( 2.0, 8.0 ), ylim=c( 2.0, 8.0 ) )

        # 散布図のx軸とy軸の範囲の最大値と最小値を指定すると,複数作図する時,グラフの範囲を統一して表示できる.
         

      4. 散布図の種類によりプロットの記号を変え,凡例を付ける.

        plot ( iris$Sepal.Length, iris$Sepal.Width, pch = as.numeric( iris$Species ), cex=1.5 )

        legend ( 6.4, 4.4, c("setosa","versicolor", "virginica"), cex=1.5, pch=1:3)

        # と2行記述すると,「irisデータ」の種類別に記号化したiris$Sepal.Length変数とiris$Sepal.Width変数の散布図と凡例を表示.


    5. plot( iris$Species, iris$Sepal.Length ) #  とグループを表す変数と数量変数を1つ指定すると箱ひげグラフ.


      # X軸がカテゴリーiris$Species,Y軸がiris$Sepal.Sepal.Lengthの箱ひげグラフを描く.

      plot( iris$Sepal.Length ~ iris$Species ) #  と記述すると変数名がラベルで表示される.
       

    6. グラフの重ね合わせには par( new=T ) を使用する


      1. 3枚のグラフの重ね合わせには par( new=T ) を使用する

        plot( iris$Species, iris$Sepal.Length )

        par ( new=T )

        plot( iris$Sepal.Length, iris$Sepal.Width, pch = 21, bg = c("red", "green3", "blue") [unclass ( iris$Species ) ] )

        par ( new=T )

        plot( iris$Sepal.Length, iris$Sepal.Width, xlim=c( 2.0, 8.0 ), ylim=c( 2.0, 8.0 ))

        # と記述すると,最初に書いたグラフは消されずに残って合成した散布図が表示される.


      2. 3枚のグラフを横3列に配置するには par ( mfcol = c(1,3) ) を使用する

        par ( mfcol = c(1,3) ) # グラフの配列を1行-3列と定義する

        plot( iris$Species, iris$Sepal.Length )

        plot( iris$Sepal.Length, iris$Sepal.Width, pch = 21, bg = c("red", "green3", "blue") [unclass ( iris$Species ) ] )

        plot( iris$Sepal.Length, iris$Sepal.Width, xlim=c( 2.0, 8.0 ), ylim=c( 2.0, 8.0 ))

        par ( mfrow = c(1,1) ) # グラフの配列を元に戻す

        と記述すると,最初に書いたグラフは消されずに左から順に配置され,三枚を合成した散布図が一枚の図として表示される.


  4. グラフの保存.


    グラフの保存は 「ファイル」−>「別名で保存」−>「Png/Jpeg」−>ファイル名を付けて保存する.


  5. ここまで練習が進んだらhelpを利用する.


    ? plot #   と記述するとplotのヘルプが参照できる.

    関数の使用方法はここから学ぶことができるはず.



[ 目次に戻る ]