Rで時系列データの分析を行います。2020年の熊本の気温変化データを使ってみます。
※更新 2021.9
↓↓↓関連した投稿です。時系列を両側2軸で違うスケール表示してますので、参考にされてください。
◆今回のポイント
①日付を名称でなく、日付として認識させる
②ggplot2のパッケージを使う
③グラフの表示を調整する
④できた図をプレゼンテーション!
日付で取得された時系列データの折れ線グラフを作成します。
今回使用したのは、気象庁のwebsiteに掲載されています熊本の気温データ(2020年)を使用させていただきました。
こちらから得られたデータを以下のようにして、csvで保存(temp_kumamoto2020.csv)しました。
日付(day)、平均気温(ave_temp)、最高気温(max_temp)、最低気温(min_temp)としています。
R Studioを立ち上げて、上のcsvデータを取り込んで作業します。
temp_kumamoto2020<-read.csv("temp_kumamoto2020.csv") head(temp_kumamoto2020) day ave_temp max_temp min_temp 1 2020/1/1 3.4 9.9 -2.1 2 2020/1/2 6.4 12.1 1.7 3 2020/1/3 6.9 13.0 2.6 4 2020/1/4 6.7 13.4 1.0 5 2020/1/5 7.2 14.8 0.7 6 2020/1/6 9.5 14.0 3.8 temp_kumamoto2020[,1]<- as.Date(temp_kumamoto2020[,1],"%Y/%m/%d") #日付データに順番を付ける(dayの列([,1])が、Y/m/dは、それぞれY=年、m=月、d=日という意味であることを認識させた) head(temp_kumamoto2020) day ave_temp max_temp min_temp 1 2020-01-01 3.4 9.9 -2.1 2 2020-01-02 6.4 12.1 1.7 3 2020-01-03 6.9 13.0 2.6 4 2020-01-04 6.7 13.4 1.0 5 2020-01-05 7.2 14.8 0.7 6 2020-01-06 9.5 14.0 3.8
as.Date()を使って、日付の情報を、名称ではなく日付として認識させ、順番に並べることができるようにしました。(①)
次からは、ggplot2のパッケージを使います。
ggplot2はRにおける可視化において、美しい描画ができることや、作業のしやすさなどから、広く使われています。
install.packages("ggplot2") #インストール済の方は不要です。 library(ggplot2) ggplot()+geom_line(data =temp_kumamoto2020, aes(x=day, y=ave_temp, color="ave_temp"),size=1)+geom_line(data =temp_kumamoto2020, aes(x=day, y=max_temp, color="max_temp"),size=1)+geom_line(data =temp_kumamoto2020, aes(x=day, y=min_temp,color="min_temp"),size=1)
geome_line(data=データ名, aes(x=横軸はdayの列, y=縦軸はave_tempの列, color=”このデータの名称(後で色名の指定とつなげる)”), size=線の太さ) を意味します。
上のコードを入れると、下の図ができます。(②)
気になるところを整えていきましょう。
図の背景、線の色、横軸の表示、縦軸ラベル を直します。
install.packages("scales") library(scales) ggplot()+geom_line(data =temp_kumamoto2020, aes(x=day, y=ave_temp, color="ave_temp"),size=1)+geom_line(data =temp_kumamoto2020, aes(x=day, y=max_temp, color="max_temp"),size=1)+geom_line(data =temp_kumamoto2020, aes(x=day, y=min_temp,color="min_temp"),size=1)+theme_bw()+scale_color_manual(values = c("black","purple", "green"))+theme(legend.position = c(0.95, 0.95),legend.justification = c(0.95, 0.95),legend.background=element_rect(fill="white",color="black"))+scale_x_date(breaks = seq(as.Date("2020-01-01"), as.Date("2020-12-31"), by="2 month"),labels=date_format("%Y/%m"))+labs(y="temp")
・図の背景
+theme_bw()で灰色の背景を白に、枠を線で囲みます。
・線の色
+scale_color_manual(values = c(“black”,”purple”, “green”)) で、geom_line()で指定した順番に線の色を 黒、紫、緑に変更します。
・凡例の場所と微調整
+theme(legend.position = c(0.95, 0.95),legend.justification = c(0.95, 0.95), legend.background=element_rect(fill=”white”,color=”black”))
凡例の場所をlegend.position = で指定しています。右上c(1,1)、左上c(0,1)、右下c(1,0)と指示します。
枠線が重なるのがきになったので、少し線から離した(0.95, 0.95) としています。
・横軸の日付表示
scaleパッケージをインストールして、日付の表示を調整します。
+scale_x_date(breaks = seq(as.Date(“最初の日付”), as.Date(“最後の日付”), by=”何か月おきの表示”), labels=date_format(“%年/%月”)) 横軸の範囲を指定して、年月の表示にした。
・縦軸のラベル
+labs(y=”縦軸ラベル名”)
これで、ある程度整った図ができました。(③)
このグラフから、プレゼンテーションをしてみよう。
熊本の気温変化から読み取れる、対策や準備などが考えられるかと思いました。(④)
以下の記事では、新型コロナ陽性者数の時系列データを扱っていますので、参考にして下さい。
コメント