Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

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推移の折れ線グラフがプロットされます。 f:id:T_A_T:20190318202341p:plain

以下のサイトを参考にさせていただきました

Pythonの文法メモ > 【matplotlib】グラフ作成、タイトル・ラベル・凡例の表示
Numpyマニュアル >> numpy.loadtxt
note.nkmk.me >> NumPyでCSVファイルを読み込み・書き込み(入力・出力)
matplotlib公式 >> matplotlib.pyplot.plot

ブログランキングに参加しています

にほんブログ村 IT技術ブログへ
にほんブログ村