折れ線グラフ

折れ線グラフを描くとき、pyplot.plot メソッドを利用する。

サンプルデータを用いて折れ線グラフを描く。このデータはラットに PF 餌、C 餌、G 餌を与えて、7 日間の体重を記録したものである。いずれの実験群においても 5 個体である。この 3 群の平均値を折れ線グラフで描く。

import numpy as np
import pandas as pd
import scipy
import matplotlib.pyplot as plt

data = pd.read_csv("https://stats.biopapyrus.jp/data/", delimiter = "\t")
data.head()
##   type  Day0  Day1  Day2  Day3  Day4  Day5  Day6  Day7
## 0   PF   200   203   195   192   187   185   184   178
## 1   PF   200   187   175   165   183   178   176   172
## 2   PF   208   197   209   199   198   190   186   185
## 3   PF   208   194   202   197   194   192   192   187
## 4   PF   212   200   210   199   188   192   188   185

各群の平均を計算し折れ線グラフとして描く。

pf_ave = data[data.type == "PF"].mean()
c_ave = data[data.type == "C"].mean()
g_ave = data[data.type == "G"].mean()

day = np.array([0, 1, 2, 3, 4, 5, 6, 7])

plt.plot(day, pf_ave, label = "PF", color = "grey")
plt.plot(day, c_ave, label = "PF", color = "cyan")
plt.plot(day, g_ave, label = "PF", color = "green")

plt.xlabel("day")
plt.ylabel("weight [g]")
plt.title("rat's weight")
plt.legend(loc = 2)

plt.show()
pyplot.plot を利用した折れ線グラフ

各個体の体重をすべてグラフに描く。

data = pd.read_csv("https://stats.biopapyrus.jp/data/", delimiter = "\t")
day = np.array([0, 1, 2, 3, 4, 5, 6, 7])

col = {"PF" : "grey", "C" : "cyan", "G" : "green"}

group_name = ""
for i, r in data.iterrows():
    if group_name != r[0]:
        plt.plot(day, r[1:], color = col[r[0]], label = r[0])
        group_name = r[0]
    else:
        plt.plot(day, r[1:], color = col[r[0]])

plt.legend(loc = 2)
plt.show()
pyplot.plot を利用した折れ線グラフ

線のタイプを変更することもできる。

x = np.array([1, 2, 3, 4, 5])
y = np.array(np.random.rand(5))

plt.plot(x, y + 1, "-")
plt.plot(x, y + 2, "--")
plt.plot(x, y + 3, "-.")
plt.plot(x, y + 4, ":")

plt.plot(x, y + 6, "-o")
plt.plot(x, y + 7, "--s")
plt.plot(x, y + 8, ":.")
plt.plot(x, y + 9, "-.+")

plt.show()
pyplot.plot を利用した折れ線グラフ