ESTRELA連載 第73回

パッケージのインストール

  • 空間統計学・空間計量経済学関連パッケージの一括インストール
    install.packages("ctv")
    library(ctv)
    install.views("Spatial")

今回使うデータ

地図表示

  • パッケージの読み込み
    library(maptools)
    library(classInt)
  • 地図データのインポート
    jpn_pref <- readShapePoly("jpn_pref.shp",IDvar="PREF_CODE")
    plot(jpn_pref, col="grey")
    summary(jpn_pref)

属性テーブルのマッチング

  • テーブルの読み込み
    jpn_COD <- read.table("COD.csv",sep=",",header=T)
    summary(jpn_COD)
  • 属性テーブルのマッチング
    ID.match <- match(jpn_pref$PREF_CODE, jpn_COD$PREF_CODE)
    ID.match
    jpn_COD1 <- jpn_COD[ID.match,]
    summary(jpn_COD1)
    jpn_pref_COD <- spCbind(jpn_pref,jpn_COD1)
    names(jpn_pref_COD)
    summary(jpn_pref_COD)

主題図の作成

  • カラーパレットを作る
    pal0 <- c("grey","grey9")
    pal1 <- gray.colors(n=5,start=0.9,end=0.3)
    pal2 <- rainbow(n=5,start=0.6,end=0.1)
    pal3 <- heat.colors(n=5,alpha=1)
    pal4 <- topo.colors(n=5,alpha=1)
    pal5 <- terrain.colors(n=5,alpha=1)
    pal6 <- cm.colors(n=5,alpha=1)
  • 等量分類により人口密度をプロットする。
    q_pref <- classIntervals(jpn_pref_COD$Pop_Dens, n=5, style="quantile")
    plot(q_pref, pal=pal0)
    q_pref_Col <- findColours(q_pref,pal0)
    plot(jpn_pref_COD,col=q_pref_Col)
    title("Population Density (quantile)")
    legend("topleft",fill=attr(q_pref_Col,"palette"),
    legend=names(attr(q_pref_Col,"table")),bty="n")
  • 等間隔分類により生活習慣病による死亡者数をプロットする。
    eq_pref <- classIntervals(jpn_pref_COD$geriatric, n=5, style="equal")
    plot(eq_pref, pal=pal1)
    eq_pref_Col <- findColours(eq_pref,pal1)
    plot(jpn_pref_COD,col=eq_pref_Col)
    title("Geriatric diseases (equal)")
    legend("topleft",fill=attr(eq_pref_Col,"palette"),
    legend=names(attr(eq_pref_Col,"table")),bty="n")
  • 標準偏差分類により悪性新生物による死亡者数をプロットする。
    sd_pref <- classIntervals(jpn_pref_COD$malignant, style="sd")
    plot(sd_pref, pal=pal2)
    sd_pref_Col <- findColours(sd_pref,pal2)
    plot(jpn_pref_COD,col=sd_pref_Col)
    title("Malignant neoplasms (standard deviations)")
    legend("topleft",fill=attr(sd_pref_Col,"palette"),
    legend=names(attr(sd_pref_Col,"table")),bty="n")
  • 自然階級分類(Jenksの最適化法)により糖尿病による死亡者数をプロットする。
    fj_pref <- classIntervals(jpn_pref_COD$malignant, style="fisher")
    plot(fj_pref, pal=pal3)
    fj_pref_Col <- findColours(fj_pref,pal3)
    plot(jpn_pref_COD,col=fj_pref_Col)
    title("Diabetes mellitus (Fisher-Jenks)")
    legend("topleft",fill=attr(fj_pref_Col,"palette"),
    legend=names(attr(fj_pref_Col,"table")),bty="n")
  • 階級数によらず高血圧性疾患による死亡者数をプロットする。
    pr_pref <- classIntervals(jpn_pref_COD$malignant, style="pretty")
    plot(pr_pref, pal=pal4)
    pr_pref_Col <- findColours(pr_pref,pal4)
    plot(jpn_pref_COD,col=pr_pref_Col)
    title("Hypertensive diseases (pretty)")
    legend("topleft",fill=attr(pr_pref_Col,"palette"),
    legend=names(attr(pr_pref_Col,"table")),bty="n")
  • 非階層クラスタリングにより人口密度をプロットする。
    km_pref <- classIntervals(jpn_pref_COD$Pop_Dens, n=5, style="kmeans")
    plot(km_pref, pal=pal0)
    km_pref_Col <- findColours(km_pref,pal0)
    plot(jpn_pref_COD,col=km_pref_Col)
    title("Population Density (kmeans)")
    legend("topleft",fill=attr(km_pref_Col,"palette"),
    legend=names(attr(km_pref_Col,"table")),bty="n")
  • 階層クラスタリングにより人口密度をプロットする。
    hc_pref <- classIntervals(jpn_pref_COD$Pop_Dens, n=5, style="hclust", method="complete")
    plot(hc_pref, pal=pal0)
    hc_pref_Col <- findColours(hc_pref,pal0)
    plot(jpn_pref_COD,col=hc_pref_Col)
    title("Population Density (hcluster)")
    legend("topleft",fill=attr(hc_pref_Col,"palette"),
    legend=names(attr(hc_pref_Col,"table")),bty="n")

訂正

  1. 本文中、図2、3のタイトルの括弧内が「四分位分類」となっていましたが、「等量分類」の誤記です。

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-04-20 (火) 12:39:57 (2226d)