SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
はじめに ggplot2 の基本 プロット例 おわりに
ggplot2 in action
縫村崇行
Takayuki NUIMURA
Nagoya.R#10 (2013/07/27)
1 / 17
はじめに ggplot2 の基本 プロット例 おわりに
自己紹介
専門:GIS や RS によるヒマラヤの氷河の変動把握
所属:名大・環境学・雪氷圏変動研究室
OSGeo 財団 日本支部 運営委員
主な業務内容
氷河の空間分布 DB 作成
ヒマラヤでフィールド調査 (DGPS)
3D モニターを使ってステレオ写真測量
研究室で GIS や R 言語の指導
2 / 17
はじめに ggplot2 の基本 プロット例 おわりに
ggplot2 とは
http://ggplot2.org/ の説明を訳すと
グラフィックス文法に基づいた記述により · · ·
—(グダグダ難しいことを述べているので省略)—
⇓
まあなんやかんやで、複雑な図でも ggplot2 を使えば簡単に出来る
http://en.wikipedia.org/wiki/Ggplot2 (Wikipedia にも項目があります)
2005 年に Hadley Wickham により開発されたパッケージ、
現在のバージョンは 0.9.3.1
3 / 17
はじめに ggplot2 の基本 プロット例 おわりに
ggplot2 とは
R 業界ではきれいな図が作れるという事で有名
=⇒ 個人的にはデータに対して切り口 (プロットの種類) を変えて
可視化を試行錯誤するのが簡単で利用しています
4 / 17
はじめに ggplot2 の基本 プロット例 おわりに
基本的なプロット (ggplot2 を使わない場合)
使用データ: airquality (R に最初から入っているサンプルデータ)
Ozone Solar.R Wind Temp Month Day
41 190 7.4 67 5 1
36 118 8.0 72 5 2
...
...
...
...
...
...
plot(airquality$Wind, airquality$Temp)
5 10 15 20
60708090
airquality$Wind
airquality$Temp
5 / 17
はじめに ggplot2 の基本 プロット例 おわりに
基本的なプロット (ggplot2 で散布図)
library(ggplot2)#パッケージ読み込み (最初だけ)
#やり方その 1 (シンプルなプロットはこちら)
ggplot(airquality, aes(x=Wind, y=Temp)) + geom_point()
#やり方その 2 (1 行が長くなりそうなときはこちら)
g <- ggplot(airquality, aes(x=Wind, y=Temp))
g <- g + geom_point()
print(g) #g と打つだけでも OK
60
70
80
90
5 10 15 20
Wind
Temp
6 / 17
はじめに ggplot2 の基本 プロット例 おわりに
基本的なプロット (ggplot2 で散布図 + 色)
g <- ggplot(airquality, aes(x=Wind, y=Temp, colour=Solar.R))
g <- g + geom_point()
print(g)
60
70
80
90
5 10 15 20
Wind
Temp
100
200
300
Solar.R
7 / 17
はじめに ggplot2 の基本 プロット例 おわりに
基本的なプロット (ggplot2 で散布図 + サイズ)
g <- ggplot(airquality, aes(x=Wind, y=Temp, size=Solar.R))
g <- g + geom_point()
print(g)
60
70
80
90
5 10 15 20
Wind
Temp
Solar.R
100
200
300
8 / 17
はじめに ggplot2 の基本 プロット例 おわりに
基本的なプロット (ggplot2)
ggplot2 でのプロットは、
ggplot 関数
使用するデータフレームの指定 (今回は airquality)
aes 関数で、X 軸や Y 軸、その他 (色、サイズなど) の変数を
指定
geom_* 関数
プロットタイプの指定
geom_point: 散布図、geom_hist: ヒストグラム etc.
その他の装飾関数
xlab, ylab: 軸タイトル
xlim, ylim: 軸範囲
scale_* 関数: 色の指定など
9 / 17
はじめに ggplot2 の基本 プロット例 おわりに
時系列データのプロット
使用データ: CSV 形式の気温データ (ダミーデータ) Download
time temp
2001-01-01 3.6
2001-02-01 5.5
...
...
# 時間の列を POSIXct 形式に変換
d <- read.csv("nagoya_temp.csv")
dd <- data.frame(time=strptime(d[,1], format="%Y-%m-%d"), temp=d[,2])
10 / 17
はじめに ggplot2 の基本 プロット例 おわりに
時系列データのプロット
# POSIXct 形式だと自動で時間目盛を設定してくれる
g <- ggplot(dd, aes(x=time, y=temp))
g <- g + geom_line() + geom_point()
print(g)
10
20
30
2002 2004 2006 2008 2010
time
temp
11 / 17
はじめに ggplot2 の基本 プロット例 おわりに
時系列データのプロット, 時間目盛を自分で調整
library(scales)# こちらのパッケージも必要
g <- ggplot(dd, aes(x=time, y=temp)) + geom_line() + geom_point()
g <- g + scale_x_datetime(breaks=date_breaks("6 months"),
labels=date_format("%y/%b"))#長いけど 1 行で(;^ω^)
print(g)
10
20
30
01/Jan 01/Jul 02/Jan 02/Jul 03/Jan 03/Jul 04/Jan 04/Jul 05/Jan 05/Jul 06/Jan 06/Jul 07/Jan 07/Jul 08/Jan 08/Jul 09/Jan 09/Jul 10/Jan 10/Jul 11/Jan
temp
12 / 17
はじめに ggplot2 の基本 プロット例 おわりに
空間データのプロット
使用データ: 名大周辺の OpenStreetMap データ Download
OpenStreetMap: 自由な地図データ
位置情報以外に属性情報 (作成ユーザー、時期 etc.) も
ダウンロード後、一般的に GIS (地理情報システム) で使われ
る形式 (Shapefile) に変換
13 / 17
はじめに ggplot2 の基本 プロット例 おわりに
空間データのプロット
library(rgdal)# こちらのパッケージが必要
# 前準備としてデータタイプの変換 (sp =⇒ dataframe)
d <- readOGR(“nagoya_lines.shp”, “nagoya_lines”)
d@data$id <- rownames(d@data)
d.points <- fortify(d, region=“id”)
d.df <- join(d.points, d@data, by=“id”)
d.df の中身
long lat order piece group id timestamp user
136.9956 35.15669 1 1 0.1 0 [日時] [ユーザー名]
136.9968 35.15643 2 1 0.1 0 [日時] [ユーザー名]
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ggplot で空間データをプロットするには、long と lat と group の列
が重要
14 / 17
はじめに ggplot2 の基本 プロット例 おわりに
空間データのプロット
g <- ggplot(d.df, aes(x=long, y=lat, group=group))
g <- g + geom_path()
print(g)
35.10
35.15
35.20
35.25
136.92 136.96 137.00
long
lat
15 / 17
はじめに ggplot2 の基本 プロット例 おわりに
空間データのプロット + 属性情報 (ユーザー) で色分け
g <- ggplot(d.df, aes(x=long, y=lat, group=group, colour=user))
g <- g + geom_path()
print(g)
35.10
35.15
35.20
35.25
136.92 136.96 137.00
long
lat
user
42429
anonyex
BugBuster
burai_ha
chikapoko
chosan
dey
ETSUJI_A
grampuskun8
hea−kun
ikiya
Kindmania
Leonidas−from−XIV
makjapan Gcjp
Masaru Okaya
moritoru
M−STA
nal
nishioka
nobichan
nuimura
OSMF Redaction Account
sngmr (Shingo!!!)
takanobu_otsuka
TKE−waka
Tom_G3X
toranosuke
Wingspan
xybot
yohama
16 / 17
はじめに ggplot2 の基本 プロット例 おわりに
おわりに ggplot2 ユーザーとして個人的な感想
ggplot2 パッケージは図の綺麗さだけでなく、多変数の関係
性を色んな切り口 (プロット) で見るのに便利
基本的なプロット以外に、時系列、空間プロットも可能だ
が、前処理が必要
まだ version 1.0 未満だからなのか、たまに記述ルールが変わ
る (´ ・ω・`)
17 / 17

Contenu connexe

Tendances

Common LispでGPGPU
Common LispでGPGPUCommon LispでGPGPU
Common LispでGPGPUgos-k
 
グローバル化はなぜ日時処理問題を引き起こすのか
グローバル化はなぜ日時処理問題を引き起こすのかグローバル化はなぜ日時処理問題を引き起こすのか
グローバル化はなぜ日時処理問題を引き起こすのかAtsushi Kambara
 
mrubyのfiberを試してみた
mrubyのfiberを試してみたmrubyのfiberを試してみた
mrubyのfiberを試してみたKindai University
 
Archaeo-GIS Workshop Round 7: GPS hands-on
Archaeo-GIS Workshop Round 7: GPS hands-onArchaeo-GIS Workshop Round 7: GPS hands-on
Archaeo-GIS Workshop Round 7: GPS hands-onYasuhisa Kondo
 
The Programming Language Scheme
The Programming Language SchemeThe Programming Language Scheme
The Programming Language SchemeKazuhiro Hishinuma
 
Spmv9forpublic
Spmv9forpublicSpmv9forpublic
Spmv9forpublicT2C_
 
Grass ライトニングトーク 120630_hokkaido
Grass ライトニングトーク 120630_hokkaidoGrass ライトニングトーク 120630_hokkaido
Grass ライトニングトーク 120630_hokkaidomasarunarazaki
 
地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2
地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2
地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2Taro Matsuzawa
 
120414 foss4g nagoya_presentation2
120414 foss4g nagoya_presentation2120414 foss4g nagoya_presentation2
120414 foss4g nagoya_presentation2Takayuki Nuimura
 
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)洋史 東平
 
HaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングHaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングKiwamu Okabe
 
2014年日本生態学会広島大会・自由集会「仕事でつかえる!FOSS4G」発表スライド
2014年日本生態学会広島大会・自由集会「仕事でつかえる!FOSS4G」発表スライド2014年日本生態学会広島大会・自由集会「仕事でつかえる!FOSS4G」発表スライド
2014年日本生態学会広島大会・自由集会「仕事でつかえる!FOSS4G」発表スライドMizutani Takayuki
 
20181214 clebsch gordan_mizuta
20181214 clebsch gordan_mizuta20181214 clebsch gordan_mizuta
20181214 clebsch gordan_mizutaRei Mizuta
 
Ninja of Train
Ninja of TrainNinja of Train
Ninja of Traintomerun
 
地理空間とOSGeoとPostGISとを簡単に紹介してみます
地理空間とOSGeoとPostGISとを簡単に紹介してみます地理空間とOSGeoとPostGISとを簡単に紹介してみます
地理空間とOSGeoとPostGISとを簡単に紹介してみますboiledorange73
 
20151118卒研進捗LT
20151118卒研進捗LT20151118卒研進捗LT
20151118卒研進捗LTmohemohe
 

Tendances (19)

Common LispでGPGPU
Common LispでGPGPUCommon LispでGPGPU
Common LispでGPGPU
 
グローバル化はなぜ日時処理問題を引き起こすのか
グローバル化はなぜ日時処理問題を引き起こすのかグローバル化はなぜ日時処理問題を引き起こすのか
グローバル化はなぜ日時処理問題を引き起こすのか
 
mrubyのfiberを試してみた
mrubyのfiberを試してみたmrubyのfiberを試してみた
mrubyのfiberを試してみた
 
Archaeo-GIS Workshop Round 7: GPS hands-on
Archaeo-GIS Workshop Round 7: GPS hands-onArchaeo-GIS Workshop Round 7: GPS hands-on
Archaeo-GIS Workshop Round 7: GPS hands-on
 
The Programming Language Scheme
The Programming Language SchemeThe Programming Language Scheme
The Programming Language Scheme
 
Spmv9forpublic
Spmv9forpublicSpmv9forpublic
Spmv9forpublic
 
Esj59 kubo
Esj59 kuboEsj59 kubo
Esj59 kubo
 
Grass ライトニングトーク 120630_hokkaido
Grass ライトニングトーク 120630_hokkaidoGrass ライトニングトーク 120630_hokkaido
Grass ライトニングトーク 120630_hokkaido
 
ggplot2 110129
ggplot2 110129ggplot2 110129
ggplot2 110129
 
Rを用いたGIS
Rを用いたGISRを用いたGIS
Rを用いたGIS
 
地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2
地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2
地球地図を利用した地図タイルの作成 - FOSS4G TOKYO 2014 全体セッション2
 
120414 foss4g nagoya_presentation2
120414 foss4g nagoya_presentation2120414 foss4g nagoya_presentation2
120414 foss4g nagoya_presentation2
 
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
Rubyの御先祖CLU(くるう)のお話(OSC2013 Hamamatsu 発表資料)
 
HaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミングHaskellではじめるCortex-M3組込みプログラミング
HaskellではじめるCortex-M3組込みプログラミング
 
2014年日本生態学会広島大会・自由集会「仕事でつかえる!FOSS4G」発表スライド
2014年日本生態学会広島大会・自由集会「仕事でつかえる!FOSS4G」発表スライド2014年日本生態学会広島大会・自由集会「仕事でつかえる!FOSS4G」発表スライド
2014年日本生態学会広島大会・自由集会「仕事でつかえる!FOSS4G」発表スライド
 
20181214 clebsch gordan_mizuta
20181214 clebsch gordan_mizuta20181214 clebsch gordan_mizuta
20181214 clebsch gordan_mizuta
 
Ninja of Train
Ninja of TrainNinja of Train
Ninja of Train
 
地理空間とOSGeoとPostGISとを簡単に紹介してみます
地理空間とOSGeoとPostGISとを簡単に紹介してみます地理空間とOSGeoとPostGISとを簡単に紹介してみます
地理空間とOSGeoとPostGISとを簡単に紹介してみます
 
20151118卒研進捗LT
20151118卒研進捗LT20151118卒研進捗LT
20151118卒研進捗LT
 

En vedette

131031 foss4 g_tokyo_grass_handson_presentation
131031 foss4 g_tokyo_grass_handson_presentation131031 foss4 g_tokyo_grass_handson_presentation
131031 foss4 g_tokyo_grass_handson_presentationTakayuki Nuimura
 
131107 foss4 g_osaka_grass7_presentation
131107 foss4 g_osaka_grass7_presentation131107 foss4 g_osaka_grass7_presentation
131107 foss4 g_osaka_grass7_presentationTakayuki Nuimura
 
131101 foss4 g_tokyo_grass_shell_presentation
131101 foss4 g_tokyo_grass_shell_presentation131101 foss4 g_tokyo_grass_shell_presentation
131101 foss4 g_tokyo_grass_shell_presentationTakayuki Nuimura
 
131101 foss4 g_tokyo_r_presentation
131101 foss4 g_tokyo_r_presentation131101 foss4 g_tokyo_r_presentation
131101 foss4 g_tokyo_r_presentationTakayuki Nuimura
 
Tile map 2011_foss4g_osaka
Tile map 2011_foss4g_osakaTile map 2011_foss4g_osaka
Tile map 2011_foss4g_osakamasarunarazaki
 
GRASS × SQLite でベクタを扱ってみる
GRASS × SQLite でベクタを扱ってみるGRASS × SQLite でベクタを扱ってみる
GRASS × SQLite でベクタを扱ってみるYoh Fukuda
 
GRASSセミナー基礎編
GRASSセミナー基礎編GRASSセミナー基礎編
GRASSセミナー基礎編Kanetaka Heshiki
 
Qgisを考古学で使う
Qgisを考古学で使うQgisを考古学で使う
Qgisを考古学で使うJunpei Ishii
 
151009 foss4 g_tokyo_grass7_handson_presentation
151009 foss4 g_tokyo_grass7_handson_presentation151009 foss4 g_tokyo_grass7_handson_presentation
151009 foss4 g_tokyo_grass7_handson_presentationTakayuki Nuimura
 
ArcGISの便利な印刷周りの機能に、QGIS APIを駆使して挑んでみたお話
ArcGISの便利な印刷周りの機能に、QGIS APIを駆使して挑んでみたお話ArcGISの便利な印刷周りの機能に、QGIS APIを駆使して挑んでみたお話
ArcGISの便利な印刷周りの機能に、QGIS APIを駆使して挑んでみたお話Kosuke Asahi
 
GRASSセミナー応用編
GRASSセミナー応用編GRASSセミナー応用編
GRASSセミナー応用編Kanetaka Heshiki
 
150810 ilts workshop_handson_presentation
150810 ilts workshop_handson_presentation150810 ilts workshop_handson_presentation
150810 ilts workshop_handson_presentationTakayuki Nuimura
 
150828 rihn gis_workshop_handson_presentation
150828 rihn gis_workshop_handson_presentation150828 rihn gis_workshop_handson_presentation
150828 rihn gis_workshop_handson_presentationTakayuki Nuimura
 

En vedette (14)

131031 foss4 g_tokyo_grass_handson_presentation
131031 foss4 g_tokyo_grass_handson_presentation131031 foss4 g_tokyo_grass_handson_presentation
131031 foss4 g_tokyo_grass_handson_presentation
 
131107 foss4 g_osaka_grass7_presentation
131107 foss4 g_osaka_grass7_presentation131107 foss4 g_osaka_grass7_presentation
131107 foss4 g_osaka_grass7_presentation
 
131101 foss4 g_tokyo_grass_shell_presentation
131101 foss4 g_tokyo_grass_shell_presentation131101 foss4 g_tokyo_grass_shell_presentation
131101 foss4 g_tokyo_grass_shell_presentation
 
131101 foss4 g_tokyo_r_presentation
131101 foss4 g_tokyo_r_presentation131101 foss4 g_tokyo_r_presentation
131101 foss4 g_tokyo_r_presentation
 
Tile map 2011_foss4g_osaka
Tile map 2011_foss4g_osakaTile map 2011_foss4g_osaka
Tile map 2011_foss4g_osaka
 
GRASS × SQLite でベクタを扱ってみる
GRASS × SQLite でベクタを扱ってみるGRASS × SQLite でベクタを扱ってみる
GRASS × SQLite でベクタを扱ってみる
 
20131218 off4g
20131218 off4g20131218 off4g
20131218 off4g
 
GRASSセミナー基礎編
GRASSセミナー基礎編GRASSセミナー基礎編
GRASSセミナー基礎編
 
Qgisを考古学で使う
Qgisを考古学で使うQgisを考古学で使う
Qgisを考古学で使う
 
151009 foss4 g_tokyo_grass7_handson_presentation
151009 foss4 g_tokyo_grass7_handson_presentation151009 foss4 g_tokyo_grass7_handson_presentation
151009 foss4 g_tokyo_grass7_handson_presentation
 
ArcGISの便利な印刷周りの機能に、QGIS APIを駆使して挑んでみたお話
ArcGISの便利な印刷周りの機能に、QGIS APIを駆使して挑んでみたお話ArcGISの便利な印刷周りの機能に、QGIS APIを駆使して挑んでみたお話
ArcGISの便利な印刷周りの機能に、QGIS APIを駆使して挑んでみたお話
 
GRASSセミナー応用編
GRASSセミナー応用編GRASSセミナー応用編
GRASSセミナー応用編
 
150810 ilts workshop_handson_presentation
150810 ilts workshop_handson_presentation150810 ilts workshop_handson_presentation
150810 ilts workshop_handson_presentation
 
150828 rihn gis_workshop_handson_presentation
150828 rihn gis_workshop_handson_presentation150828 rihn gis_workshop_handson_presentation
150828 rihn gis_workshop_handson_presentation
 

Similaire à 130727 nagoyar presentation

タイル地図がおもしろい
タイル地図がおもしろいタイル地図がおもしろい
タイル地図がおもしろいKohei Otsuka
 
20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LTKohei KaiGai
 
20200806_PGStrom_PostGIS_GstoreFdw
20200806_PGStrom_PostGIS_GstoreFdw20200806_PGStrom_PostGIS_GstoreFdw
20200806_PGStrom_PostGIS_GstoreFdwKohei KaiGai
 
pgGeocoderのご紹介
pgGeocoderのご紹介pgGeocoderのご紹介
pgGeocoderのご紹介Ko Nagase
 
SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来Hidekazu Oiwa
 
魅せる・際立つ・役立つグラフ Hands on!! ggplot2!! ~導入編~
魅せる・際立つ・役立つグラフ Hands on!! ggplot2!! ~導入編~魅せる・際立つ・役立つグラフ Hands on!! ggplot2!! ~導入編~
魅せる・際立つ・役立つグラフ Hands on!! ggplot2!! ~導入編~MrUnadon
 
2015年度GPGPU実践プログラミング 第12回 偏微分方程式の差分計算
2015年度GPGPU実践プログラミング 第12回 偏微分方程式の差分計算2015年度GPGPU実践プログラミング 第12回 偏微分方程式の差分計算
2015年度GPGPU実践プログラミング 第12回 偏微分方程式の差分計算智啓 出川
 
マーク&スイープ勉強会
マーク&スイープ勉強会マーク&スイープ勉強会
マーク&スイープ勉強会7shi
 
Introduction to R Graphics with ggplot2 #1
Introduction to R Graphics with ggplot2 #1Introduction to R Graphics with ggplot2 #1
Introduction to R Graphics with ggplot2 #1nozma
 
About GStreamer 1.0 application development for beginners
About GStreamer 1.0 application development for beginnersAbout GStreamer 1.0 application development for beginners
About GStreamer 1.0 application development for beginnersShota TAMURA
 
groovy 2.1.0 20130118
groovy 2.1.0 20130118groovy 2.1.0 20130118
groovy 2.1.0 20130118Uehara Junji
 
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理Takeshi Arabiki
 
Iugonet 20120810 abe_analysis
Iugonet 20120810 abe_analysisIugonet 20120810 abe_analysis
Iugonet 20120810 abe_analysisIugo Net
 
TensorFlow DevSummitを概観する
TensorFlow DevSummitを概観するTensorFlow DevSummitを概観する
TensorFlow DevSummitを概観するY OCHI
 
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さんAkira Shibata
 
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】Kohei KaiGai
 
DTrace for biginners part(2)
DTrace for biginners part(2)DTrace for biginners part(2)
DTrace for biginners part(2)Shoji Haraguchi
 
New features of Groovy 2.0 and 2.1
New features of Groovy 2.0 and 2.1New features of Groovy 2.0 and 2.1
New features of Groovy 2.0 and 2.1Uehara Junji
 

Similaire à 130727 nagoyar presentation (20)

タイル地図がおもしろい
タイル地図がおもしろいタイル地図がおもしろい
タイル地図がおもしろい
 
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
 
20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT
 
20200806_PGStrom_PostGIS_GstoreFdw
20200806_PGStrom_PostGIS_GstoreFdw20200806_PGStrom_PostGIS_GstoreFdw
20200806_PGStrom_PostGIS_GstoreFdw
 
pgGeocoderのご紹介
pgGeocoderのご紹介pgGeocoderのご紹介
pgGeocoderのご紹介
 
SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来
 
魅せる・際立つ・役立つグラフ Hands on!! ggplot2!! ~導入編~
魅せる・際立つ・役立つグラフ Hands on!! ggplot2!! ~導入編~魅せる・際立つ・役立つグラフ Hands on!! ggplot2!! ~導入編~
魅せる・際立つ・役立つグラフ Hands on!! ggplot2!! ~導入編~
 
2015年度GPGPU実践プログラミング 第12回 偏微分方程式の差分計算
2015年度GPGPU実践プログラミング 第12回 偏微分方程式の差分計算2015年度GPGPU実践プログラミング 第12回 偏微分方程式の差分計算
2015年度GPGPU実践プログラミング 第12回 偏微分方程式の差分計算
 
マーク&スイープ勉強会
マーク&スイープ勉強会マーク&スイープ勉強会
マーク&スイープ勉強会
 
Introduction to R Graphics with ggplot2 #1
Introduction to R Graphics with ggplot2 #1Introduction to R Graphics with ggplot2 #1
Introduction to R Graphics with ggplot2 #1
 
ggplot2 110129
ggplot2 110129ggplot2 110129
ggplot2 110129
 
About GStreamer 1.0 application development for beginners
About GStreamer 1.0 application development for beginnersAbout GStreamer 1.0 application development for beginners
About GStreamer 1.0 application development for beginners
 
groovy 2.1.0 20130118
groovy 2.1.0 20130118groovy 2.1.0 20130118
groovy 2.1.0 20130118
 
Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理
 
Iugonet 20120810 abe_analysis
Iugonet 20120810 abe_analysisIugonet 20120810 abe_analysis
Iugonet 20120810 abe_analysis
 
TensorFlow DevSummitを概観する
TensorFlow DevSummitを概観するTensorFlow DevSummitを概観する
TensorFlow DevSummitを概観する
 
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
大規模言語モデル開発を支える分散学習技術 - 東京工業大学横田理央研究室の藤井一喜さん
 
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
 
DTrace for biginners part(2)
DTrace for biginners part(2)DTrace for biginners part(2)
DTrace for biginners part(2)
 
New features of Groovy 2.0 and 2.1
New features of Groovy 2.0 and 2.1New features of Groovy 2.0 and 2.1
New features of Groovy 2.0 and 2.1
 

Plus de Takayuki Nuimura

161104 foss4 g_tokyo_qgis_handson_presentation
161104 foss4 g_tokyo_qgis_handson_presentation161104 foss4 g_tokyo_qgis_handson_presentation
161104 foss4 g_tokyo_qgis_handson_presentationTakayuki Nuimura
 
オープンサイエンスの雪氷学への応用と展望 雪氷研究大会2016 特別セッションの紹介
オープンサイエンスの雪氷学への応用と展望 雪氷研究大会2016 特別セッションの紹介オープンサイエンスの雪氷学への応用と展望 雪氷研究大会2016 特別セッションの紹介
オープンサイエンスの雪氷学への応用と展望 雪氷研究大会2016 特別セッションの紹介Takayuki Nuimura
 
141031 qgisr handson_presentation
141031 qgisr handson_presentation141031 qgisr handson_presentation
141031 qgisr handson_presentationTakayuki Nuimura
 
130622 osc nagoya_presentation
130622 osc nagoya_presentation130622 osc nagoya_presentation
130622 osc nagoya_presentationTakayuki Nuimura
 
130612 ocu lecture_presentation
130612 ocu lecture_presentation130612 ocu lecture_presentation
130612 ocu lecture_presentationTakayuki Nuimura
 
130521 jp gu2013_handson2_presentation
130521 jp gu2013_handson2_presentation130521 jp gu2013_handson2_presentation
130521 jp gu2013_handson2_presentationTakayuki Nuimura
 
130521 jp gu2013_handson1_presentation
130521 jp gu2013_handson1_presentation130521 jp gu2013_handson1_presentation
130521 jp gu2013_handson1_presentationTakayuki Nuimura
 
130113 os mworkshop_presentation
130113 os mworkshop_presentation130113 os mworkshop_presentation
130113 os mworkshop_presentationTakayuki Nuimura
 
121215 foss4 g_nagoya_qgis_handson
121215 foss4 g_nagoya_qgis_handson121215 foss4 g_nagoya_qgis_handson
121215 foss4 g_nagoya_qgis_handsonTakayuki Nuimura
 
121105 foss4 g_tokyo_qgis_handson
121105 foss4 g_tokyo_qgis_handson121105 foss4 g_tokyo_qgis_handson
121105 foss4 g_tokyo_qgis_handsonTakayuki Nuimura
 
121107 foss4 g_osaka_r_handson_presentation
121107 foss4 g_osaka_r_handson_presentation121107 foss4 g_osaka_r_handson_presentation
121107 foss4 g_osaka_r_handson_presentationTakayuki Nuimura
 
2012 nov foss4g_presentation
2012 nov foss4g_presentation2012 nov foss4g_presentation
2012 nov foss4g_presentationTakayuki Nuimura
 
120727 gms2012nagoya presentation
120727 gms2012nagoya presentation120727 gms2012nagoya presentation
120727 gms2012nagoya presentationTakayuki Nuimura
 
120630 os mworkshop_presentation
120630 os mworkshop_presentation120630 os mworkshop_presentation
120630 os mworkshop_presentationTakayuki Nuimura
 
120619 os mworkshop_presentation
120619 os mworkshop_presentation120619 os mworkshop_presentation
120619 os mworkshop_presentationTakayuki Nuimura
 
120620 chred r_presentation2
120620 chred r_presentation2120620 chred r_presentation2
120620 chred r_presentation2Takayuki Nuimura
 
120620 chred r_presentation1
120620 chred r_presentation1120620 chred r_presentation1
120620 chred r_presentation1Takayuki Nuimura
 
120414 foss4g nagoya_presentation1
120414 foss4g nagoya_presentation1120414 foss4g nagoya_presentation1
120414 foss4g nagoya_presentation1Takayuki Nuimura
 

Plus de Takayuki Nuimura (20)

161104 foss4 g_tokyo_qgis_handson_presentation
161104 foss4 g_tokyo_qgis_handson_presentation161104 foss4 g_tokyo_qgis_handson_presentation
161104 foss4 g_tokyo_qgis_handson_presentation
 
オープンサイエンスの雪氷学への応用と展望 雪氷研究大会2016 特別セッションの紹介
オープンサイエンスの雪氷学への応用と展望 雪氷研究大会2016 特別セッションの紹介オープンサイエンスの雪氷学への応用と展望 雪氷研究大会2016 特別セッションの紹介
オープンサイエンスの雪氷学への応用と展望 雪氷研究大会2016 特別セッションの紹介
 
141031 qgisr handson_presentation
141031 qgisr handson_presentation141031 qgisr handson_presentation
141031 qgisr handson_presentation
 
130622 osc nagoya_presentation
130622 osc nagoya_presentation130622 osc nagoya_presentation
130622 osc nagoya_presentation
 
130612 ocu lecture_presentation
130612 ocu lecture_presentation130612 ocu lecture_presentation
130612 ocu lecture_presentation
 
130521 jp gu2013_handson2_presentation
130521 jp gu2013_handson2_presentation130521 jp gu2013_handson2_presentation
130521 jp gu2013_handson2_presentation
 
130521 jp gu2013_handson1_presentation
130521 jp gu2013_handson1_presentation130521 jp gu2013_handson1_presentation
130521 jp gu2013_handson1_presentation
 
130113 os mworkshop_presentation
130113 os mworkshop_presentation130113 os mworkshop_presentation
130113 os mworkshop_presentation
 
121215 foss4 g_nagoya_qgis_handson
121215 foss4 g_nagoya_qgis_handson121215 foss4 g_nagoya_qgis_handson
121215 foss4 g_nagoya_qgis_handson
 
121105 foss4 g_tokyo_qgis_handson
121105 foss4 g_tokyo_qgis_handson121105 foss4 g_tokyo_qgis_handson
121105 foss4 g_tokyo_qgis_handson
 
121107 foss4 g_osaka_r_handson_presentation
121107 foss4 g_osaka_r_handson_presentation121107 foss4 g_osaka_r_handson_presentation
121107 foss4 g_osaka_r_handson_presentation
 
2012 nov foss4g_presentation
2012 nov foss4g_presentation2012 nov foss4g_presentation
2012 nov foss4g_presentation
 
121012 gisa qgis_handson
121012 gisa qgis_handson121012 gisa qgis_handson
121012 gisa qgis_handson
 
120727 gms2012nagoya presentation
120727 gms2012nagoya presentation120727 gms2012nagoya presentation
120727 gms2012nagoya presentation
 
120630 os mworkshop_presentation
120630 os mworkshop_presentation120630 os mworkshop_presentation
120630 os mworkshop_presentation
 
120619 os mworkshop_presentation
120619 os mworkshop_presentation120619 os mworkshop_presentation
120619 os mworkshop_presentation
 
120620 chred r_presentation2
120620 chred r_presentation2120620 chred r_presentation2
120620 chred r_presentation2
 
120620 chred r_presentation1
120620 chred r_presentation1120620 chred r_presentation1
120620 chred r_presentation1
 
120414 foss4g nagoya_presentation1
120414 foss4g nagoya_presentation1120414 foss4g nagoya_presentation1
120414 foss4g nagoya_presentation1
 
Foss4 g勉強会2011
Foss4 g勉強会2011Foss4 g勉強会2011
Foss4 g勉強会2011
 

130727 nagoyar presentation

  • 1. はじめに ggplot2 の基本 プロット例 おわりに ggplot2 in action 縫村崇行 Takayuki NUIMURA Nagoya.R#10 (2013/07/27) 1 / 17
  • 2. はじめに ggplot2 の基本 プロット例 おわりに 自己紹介 専門:GIS や RS によるヒマラヤの氷河の変動把握 所属:名大・環境学・雪氷圏変動研究室 OSGeo 財団 日本支部 運営委員 主な業務内容 氷河の空間分布 DB 作成 ヒマラヤでフィールド調査 (DGPS) 3D モニターを使ってステレオ写真測量 研究室で GIS や R 言語の指導 2 / 17
  • 3. はじめに ggplot2 の基本 プロット例 おわりに ggplot2 とは http://ggplot2.org/ の説明を訳すと グラフィックス文法に基づいた記述により · · · —(グダグダ難しいことを述べているので省略)— ⇓ まあなんやかんやで、複雑な図でも ggplot2 を使えば簡単に出来る http://en.wikipedia.org/wiki/Ggplot2 (Wikipedia にも項目があります) 2005 年に Hadley Wickham により開発されたパッケージ、 現在のバージョンは 0.9.3.1 3 / 17
  • 4. はじめに ggplot2 の基本 プロット例 おわりに ggplot2 とは R 業界ではきれいな図が作れるという事で有名 =⇒ 個人的にはデータに対して切り口 (プロットの種類) を変えて 可視化を試行錯誤するのが簡単で利用しています 4 / 17
  • 5. はじめに ggplot2 の基本 プロット例 おわりに 基本的なプロット (ggplot2 を使わない場合) 使用データ: airquality (R に最初から入っているサンプルデータ) Ozone Solar.R Wind Temp Month Day 41 190 7.4 67 5 1 36 118 8.0 72 5 2 ... ... ... ... ... ... plot(airquality$Wind, airquality$Temp) 5 10 15 20 60708090 airquality$Wind airquality$Temp 5 / 17
  • 6. はじめに ggplot2 の基本 プロット例 おわりに 基本的なプロット (ggplot2 で散布図) library(ggplot2)#パッケージ読み込み (最初だけ) #やり方その 1 (シンプルなプロットはこちら) ggplot(airquality, aes(x=Wind, y=Temp)) + geom_point() #やり方その 2 (1 行が長くなりそうなときはこちら) g <- ggplot(airquality, aes(x=Wind, y=Temp)) g <- g + geom_point() print(g) #g と打つだけでも OK 60 70 80 90 5 10 15 20 Wind Temp 6 / 17
  • 7. はじめに ggplot2 の基本 プロット例 おわりに 基本的なプロット (ggplot2 で散布図 + 色) g <- ggplot(airquality, aes(x=Wind, y=Temp, colour=Solar.R)) g <- g + geom_point() print(g) 60 70 80 90 5 10 15 20 Wind Temp 100 200 300 Solar.R 7 / 17
  • 8. はじめに ggplot2 の基本 プロット例 おわりに 基本的なプロット (ggplot2 で散布図 + サイズ) g <- ggplot(airquality, aes(x=Wind, y=Temp, size=Solar.R)) g <- g + geom_point() print(g) 60 70 80 90 5 10 15 20 Wind Temp Solar.R 100 200 300 8 / 17
  • 9. はじめに ggplot2 の基本 プロット例 おわりに 基本的なプロット (ggplot2) ggplot2 でのプロットは、 ggplot 関数 使用するデータフレームの指定 (今回は airquality) aes 関数で、X 軸や Y 軸、その他 (色、サイズなど) の変数を 指定 geom_* 関数 プロットタイプの指定 geom_point: 散布図、geom_hist: ヒストグラム etc. その他の装飾関数 xlab, ylab: 軸タイトル xlim, ylim: 軸範囲 scale_* 関数: 色の指定など 9 / 17
  • 10. はじめに ggplot2 の基本 プロット例 おわりに 時系列データのプロット 使用データ: CSV 形式の気温データ (ダミーデータ) Download time temp 2001-01-01 3.6 2001-02-01 5.5 ... ... # 時間の列を POSIXct 形式に変換 d <- read.csv("nagoya_temp.csv") dd <- data.frame(time=strptime(d[,1], format="%Y-%m-%d"), temp=d[,2]) 10 / 17
  • 11. はじめに ggplot2 の基本 プロット例 おわりに 時系列データのプロット # POSIXct 形式だと自動で時間目盛を設定してくれる g <- ggplot(dd, aes(x=time, y=temp)) g <- g + geom_line() + geom_point() print(g) 10 20 30 2002 2004 2006 2008 2010 time temp 11 / 17
  • 12. はじめに ggplot2 の基本 プロット例 おわりに 時系列データのプロット, 時間目盛を自分で調整 library(scales)# こちらのパッケージも必要 g <- ggplot(dd, aes(x=time, y=temp)) + geom_line() + geom_point() g <- g + scale_x_datetime(breaks=date_breaks("6 months"), labels=date_format("%y/%b"))#長いけど 1 行で(;^ω^) print(g) 10 20 30 01/Jan 01/Jul 02/Jan 02/Jul 03/Jan 03/Jul 04/Jan 04/Jul 05/Jan 05/Jul 06/Jan 06/Jul 07/Jan 07/Jul 08/Jan 08/Jul 09/Jan 09/Jul 10/Jan 10/Jul 11/Jan temp 12 / 17
  • 13. はじめに ggplot2 の基本 プロット例 おわりに 空間データのプロット 使用データ: 名大周辺の OpenStreetMap データ Download OpenStreetMap: 自由な地図データ 位置情報以外に属性情報 (作成ユーザー、時期 etc.) も ダウンロード後、一般的に GIS (地理情報システム) で使われ る形式 (Shapefile) に変換 13 / 17
  • 14. はじめに ggplot2 の基本 プロット例 おわりに 空間データのプロット library(rgdal)# こちらのパッケージが必要 # 前準備としてデータタイプの変換 (sp =⇒ dataframe) d <- readOGR(“nagoya_lines.shp”, “nagoya_lines”) d@data$id <- rownames(d@data) d.points <- fortify(d, region=“id”) d.df <- join(d.points, d@data, by=“id”) d.df の中身 long lat order piece group id timestamp user 136.9956 35.15669 1 1 0.1 0 [日時] [ユーザー名] 136.9968 35.15643 2 1 0.1 0 [日時] [ユーザー名] . . . . . . . . . . . . . . . . . . . . . . . . ggplot で空間データをプロットするには、long と lat と group の列 が重要 14 / 17
  • 15. はじめに ggplot2 の基本 プロット例 おわりに 空間データのプロット g <- ggplot(d.df, aes(x=long, y=lat, group=group)) g <- g + geom_path() print(g) 35.10 35.15 35.20 35.25 136.92 136.96 137.00 long lat 15 / 17
  • 16. はじめに ggplot2 の基本 プロット例 おわりに 空間データのプロット + 属性情報 (ユーザー) で色分け g <- ggplot(d.df, aes(x=long, y=lat, group=group, colour=user)) g <- g + geom_path() print(g) 35.10 35.15 35.20 35.25 136.92 136.96 137.00 long lat user 42429 anonyex BugBuster burai_ha chikapoko chosan dey ETSUJI_A grampuskun8 hea−kun ikiya Kindmania Leonidas−from−XIV makjapan Gcjp Masaru Okaya moritoru M−STA nal nishioka nobichan nuimura OSMF Redaction Account sngmr (Shingo!!!) takanobu_otsuka TKE−waka Tom_G3X toranosuke Wingspan xybot yohama 16 / 17
  • 17. はじめに ggplot2 の基本 プロット例 おわりに おわりに ggplot2 ユーザーとして個人的な感想 ggplot2 パッケージは図の綺麗さだけでなく、多変数の関係 性を色んな切り口 (プロット) で見るのに便利 基本的なプロット以外に、時系列、空間プロットも可能だ が、前処理が必要 まだ version 1.0 未満だからなのか、たまに記述ルールが変わ る (´ ・ω・`) 17 / 17