CSVファイルから読み出したデータで折れ線グラフを描く
やること
- CSVファイルからデータを読み込み、折れ線グラフを作成します。
使った関数
- numpy.loadtxt : テキストファイルを読み出す
- matplotlib.pyplot.plt : 折れ線グラフのプロット
- matplotlib.pyplot.legend : 凡例の表示
- matplotlib.pyplot.xlabel : X軸ラベルの表示
- matplotlib.pyplot.ylabel : Y軸ラベルの表示
- matplotlib.pyplot.show : プロットの表示
環境
- windows10 home
- Anaconda 3/ jupyter notebook 5.6.0
- Python 3.7.0
準備
IMFウエブサイトより、G7各国の1980~2018年のGDPのデータを入手し以下に示す形式でデータを作成しました。 データの各行は年度、カナダのGDP、フランスのGDP…アメリカのGDPとなります。
Gross domestic product, current prices, U.S. Dollars, Billions
Country,Canada,France,Germany,Italy,Japan,United Kingdom,United States
1980,275.035,702.243,850.475,482.429,1105.386,604.678,2857.325
1981,306.213,618.954,715.546,437.494,1218.989,587.772,3207.025
・
・
・
2018,1733.706,2794.696,4029.14,2086.911,5070.626,2808.899,20513
これをファイル名"GDP_G7_1980_2018.csv"として、jupyter notebookファイル(***.ipynb)と同じディレクトリに保存しました。
コード
import matplotlib.pyplot as plt #matplotlib.pyplotをpltという名前でインポート import numpy as np #numpyをnpという名前でインポート filename='GDP_G7_1980_2018.csv' #ファイル名 #ファイルの0列目を上から2行とばして整数型で読み出し、yearに代入する year=np.loadtxt(fname=filename,dtype='int',delimiter=',',comments='#',skiprows=2,usecols=0) for i in range(1,8): #i=1~7まで繰り返す #ファイルのi列目を上から1行とばして文字型で読み出し、要素[0]を取り出してcountry_nameに代入する country_name=np.loadtxt(fname=filename,dtype='str',delimiter=',',comments='#',skiprows=1,usecols=i)[0] #ファイルのi列目を上から2行とばしてfloat型で読み出し、country_gdp_dataに代入する country_gdp_data=np.loadtxt(fname=filename,dtype='float',delimiter=',',comments='#',skiprows=2,usecols=i) #x軸をリストyear、y軸をcountry_gdp_data、ラベルをcountry_nameでプロットする plt.plot(year, country_gdp_data,label=country_name) plt.xlabel('year') #X軸ラベルを表示 plt.ylabel('GDP, U.S. Dollars, Billions') #Y軸ラベルを表示 plt.legend() #凡例を表示 plt.show() #プロットを表示
実行結果
1980~2018年のG7各国のGDP推移の折れ線グラフがプロットされます。
以下のサイトを参考にさせていただきました
Pythonの文法メモ > 【matplotlib】グラフ作成、タイトル・ラベル・凡例の表示
Numpyマニュアル >> numpy.loadtxt
note.nkmk.me >> NumPyでCSVファイルを読み込み・書き込み(入力・出力)
matplotlib公式 >> matplotlib.pyplot.plot