BellCurve 統計WEB

  • Step3. 実践編
  • 1. データの整理と可視化

1-5. 折れ線グラフ

次のデータは、「Step0. 初級編 3-1. 時系列データを見てみよう」で用いたデータです。このデータを使って、折れ線グラフの作成を行ってみましょう。

ファイルのダウンロードはこちらから

■Excelによる解析例

  1. 「neko_ensoku.csv」のデータを選択(A1セルからD10セルまで)
  2. 挿入 > すべてのグラフを表示 > 折れ線を選択
  3. 
    

  4. デフォルトのグラフが出力される
  5. デフォルトのグラフを加工
  6. ※気温を含めた折れ線グラフを作る場合には、第2軸を使った組み合わせグラフを選択します。A1セルからE10セルまでを選択し、挿入 > すべてのグラフを表示 > ユーザー設定の組み合わせの「グラフの種類」と「第2軸」を図のように設定します。

    
    

    
    

    
    

    赤、緑、黄緑のグラフから野菜の高さを見る場合には左側の軸を使います。灰色のグラフから気温を見る場合には右側の軸を使います。

■Rによる解析例

・その1(packageを使わない場合)

library(lubridate)

dat <- read.csv("neko_yasai_eng.csv", header=T)  #データの読み込み
dat$day <- ymd(dat$Date)  #Dateをchr型からDate型に変換

plot(dat$day, dat$Tomato,  #plot関数にデータをセット 
     type = "l", lwd=3, col = "red",  #折れ線グラフを指定、線の太さを指定、線の色を指定
     ylim = c(0, 80),  #y軸を0から80までにセット
     xaxt = "n",  #x軸のラベルを削除 
     xlab = "Date", ylab = "Growth (cm)")  #x軸ラベルとy軸ラベルを設定
par(new=T)  #グラフを重ねる
plot(dat$day, dat$Edamame, 
     type = "l", lwd=3, col = "green4", 
     ylim = c(0, 80), 
     xaxt = "n", 
     xlab = "", ylab = "")
par(new=T)
plot(dat$day, dat$Cucumber, 
     type = "l", lwd=3, col = "lightgreen", 
     ylim = c(0, 80), 
     xaxt = "n", 
     xlab = "", ylab = "")
axis.Date(1, Day, at = seq(min(dat$day), max(dat$day), by = "days"), format = "%Y-%m-%d")  #x軸にyyyy-mm-ddの日付型のデータを入れる
legend("topleft",  #凡例の位置を設定
        legend = c(colnames(dat)[2:4]),  #凡例に記載する項目を設定
        col = c("red", "green4", "lightgreen"),  #凡例の色を設定
        lwd = 1, lty = 1)  #凡例内の線の太さと種類を設定

■Rによる解析例

・その2(ggplot2を使う場合)

library(ggplot2)
library(reshape2)

dat <- read.csv("neko_yasai_eng.csv", header=T)  #データの読み込み
dat2 <- dat[,c(2,3,4,6)]  #datから必要な列を抽出  
dat3 <- melt(dat2, id = "day")  #データを縦に並べかえる

G <-ggplot(dat3, aes(x = day, y = value , color = variable)) +  #x軸、y軸、折れ線グラフの色のデータを設定  
  geom_line(size = 1.5) +  #線の太さを設定
  scale_color_manual(values = c("red", "green4", "lightgreen")) +  #線の色を設定 
  labs(x = "Date", y = "Frowth (cm)", color = "Vegetable") +  #グラフのラベルを設定 
  scale_x_date(date_breaks = "2 days",  #x軸を2日刻みにする
                date_labels = "%Y-%m-%d") +  #x軸をyyyy-mm-dd表示にする
  theme(panel.grid.major = element_blank(),  #背景のgridの削除 
        panel.grid.minor = element_blank(),  #背景のgridの削除
        panel.background = element_blank(),  #背景色の削除
        axis.line = element_line(colour = "black"),  #グラフの線の色を指定
        axis.ticks = element_line(colour = "black"),  #グラフの目盛(ticks)の色を指定
        axis.text = element_text(size=14),  #グラフの目盛のフォントサイズを指定
        axis.title = element_text(size=16),  #グラフのラベルのフォントサイズを指定
        legend.text = element_text(size=14),  #凡例のフォントサイズを指定 
        legend.title = element_text(size=16))  #凡例のラベルのフォントサイズを指定
plot(G)

■Pythonによる解析例

・その1(matplotlibを使う場合)

import pandas as pd
import matplotlib.pyplot as plt

dat = pd.read_csv("neko_yasai_eng.csv", index_col=0)  #データの読み込み、indexを0列目にする
dat2 = dat.iloc[:,0:3]  #datから必要な列を抽出  

fig, ax = plt.subplots()  #グラフの大枠の作成
ax.plot(dat["Tomato"], color='red', linestyle='-')  #データの列を指定、線の色を指定、線の種類を指定
ax.plot(dat["Edamame"], color='green', linestyle='-')
ax.plot(dat["Cucumber"], color='lightgreen', linestyle='-')

plt.legend(dat2.columns, fontsize=10, loc='upper left', bbox_to_anchor=(1, 1))  #凡例の項目を指定、フォントを指定、位置を指定
plt.ylabel("Growth (cm)", fontsize=10)  #y軸ラベルを設定、フォントサイズの設定
plt.xticks(rotation=45)  #x軸を45度回転
plt.tight_layout()  #グラフの要素が画面からはみ出さないようにする

plt.show()

■Pythonによる解析例

・その2(matplotlib + seabornを使う場合)

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

dat = pd.read_csv("neko_yasai_eng.csv")
dat2 = dat.iloc[:,0:4]
dat3 = pd.melt(dat2, id_vars = "Date")  #データを縦に並べかえる

sns.set_style("white")  #グラフのスタイルを指定
sns.lineplot(x="Date", y="value", hue="variable", data = dat3, palette=['red', 'green', 'lightgreen'])  #折れ線グラフのx軸、y軸、色分けするデータ、グラフの元となるデータ、グラフの色を設定
plt.xlabel("")
plt.ylabel("Growth (cm)", fontsize=12)
plt.xticks(rotation=45)
plt.tight_layout()
plt.legend(title='Vegetable')  #凡例のタイトルを設定

plt.show()

1. データの整理と可視化


統計学やデータ分析を学ぶなら、大人のための統計教室 和(なごみ) [業務提携]


【BellCurve監修】統計検定®2級対策に最適な模擬問題集1~3を各500円(税込)にて販売中!

Kindleストアで配信中

統計検定®2級 模擬問題集1

500円(税込)

統計検定®2級 模擬問題集2

500円(税込)

統計検定®2級 模擬問題集3

500円(税込)