発表で3軸の折線グラフを作ろうとした時にexcelではできなかったのでmatplotlibを使って作る方法を調べました。
今回のデータです。
3jiku.py
列1,体温,CRP,ddimer
1,37,8,9.9
2,39,17,18.6
3,39,18,7.2
4,38,19,5.7
5,38,,
6,38,25,8.1
7,39,,
8,39,19,9.3
9,38,19,
10,37,,
まずデータを取り込みます
3jiku.py
import pandas as pd
#csv読み込み
df=pd.read_csv("b.csv")
3jiku.py
import matplotlib.pyplot as plt
まずはmatplotlib.pyplotをimportします。
3jiku.py
fig,ax1= plt.subplots()#グラフを書く場所を設定します。
fig.subplots_adjust(right=0.75)
fig.subplots_adjust(bottom=0.2)#グラフを書くスペースを調整します。
グラフを書く場所を設定して、大きさを調整します。入り切らなければ後から数値を変更して調整します。
3jiku.py
ax1.plot(df["体温"].dropna(how='any'),"b-")
ax1.set_ylabel("体温")
ax2.plot(df["CRP"].dropna(how='any'),"r-")
ax2.set_ylabel("CRP")
ax3.plot(df["ddimer"].dropna(how='any'),"c-")
ax3.set_ylabel("ddimer")
dfはDataFrameの略です。dropna(how='any')メソッドを使う事でNanの値を無視して線を繋いでくれます。”b”は青”r”は赤”c”は何色なんでしょう?
set_ylabelでラベルを追加します。
3jiku.py
ax2 = ax1.twinx()
ax3 = ax1.twinx()
このtwinxというものを使って2軸にする事ができます。
ただし、このままだと、軸がかぶってしまいます。
そこで以下のようにします
3jiku.py
ax3.spines["right"].set_position(("axes", 1.12))
3jiku.py
ax3.spines["right"].set_position(("axes", 1.2))
直し方わかる方、コメントで教えてくださいorz