Pythonでいろいろやってみる

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

CSVファイルから読み出したデータから散布図を描く

「コード中に記述したデータから散布図を描く」を発展させ、CSVファイルからデータを読み込み、散布図を作成し表示します。

やること
  • CSVファイルを読み出す
  • 読み出したデータを元に散布図を作成、表示する
使った関数
  • numpy.loadtxt : テキストファイルを読み出す
  • tuple : リストをタプルに変換する
  • matplotlib.pyplot.scatter : 散布図のプロット
  • matplotlib.pyplot.legend : 凡例の表示
  • matplotlib.pyplot.title : グラフタイトルの表示
  • matplotlib.pyplot.xlabel : X軸ラベルの表示
  • matplotlib.pyplot.ylabel : Y軸ラベルの表示
  • matplotlib.pyplot.show : 散布図の表示
環境
  • windows10 home
  • Anaconda 3/ jupyter notebook 5.6.0
  • Python 3.7.0
準備

気象庁ウエブサイトの「過去の気象データ検索」ページから入手した、地点名、緯度、2019/1/1正午の気温からなる、7地点分のデータを用意しメモ帳でカンマ区切り形式の表にします。

Wakkanai,45.249,-3.4
Hakodate,41.49,-0.7
Sendai,38.157,6.3
Tokyo,35.415,9.6
Murotomisaki,33.151,10.3
Yakushima,30.231,14.3
Naha,26.124,19.8

これをファイル名"temp_data.csv"として、jupyter notebookファイル(***.ipynb)と同じディレクトリに保存しました。

コード
import matplotlib.pyplot as plt #matplotlib.pyplotをpltという名前でインポート
import numpy as np #numpyをnpという名前でインポート

#CSVファイル'temp_data.csv'の1列目をstr型で読み出し、タプルに変換しpointに代入
point=tuple(np.loadtxt(fname='temp_data.csv',dtype='str',delimiter=',',comments='#',skiprows=0,usecols=0)
)
#CSVファイル'temp_data.csv'の2列目をfloat型で読み出し、リストlatitudeに代入
latitude=np.loadtxt(fname='temp_data.csv',dtype='float',delimiter=',',comments='#',skiprows=0,usecols=1)
#CSVファイル'temp_data.csv'の3列目をfloat型で読み出し、リストtemparatureに代入
temparature=np.loadtxt(fname='temp_data.csv',dtype='float',delimiter=',',comments='#',skiprows=0,usecols=2)

color=('b','g','r','c','m','y','k') #プロットのカラー(青、緑、赤、シアン、マゼンタ、黄)のタプル

for i in range(7):
    #各リスト、タプルの値を7回順番に読み出し、その値を元に緯度vs気温の散布図を描画。  
    plt.scatter(latitude[i], temparature[i], c=color[i] , label = point[i])
  

plt.legend() #凡例を表示
plt.title("latitude vs temparature(2019/1/1 12) ") #グラフタイトルを表示
plt.xlabel("latitude") #X軸ラベルを表示
plt.ylabel("temparature") #Y軸ラベルを表示
plt.show() #プロットを表示

実行結果

7地点の緯度vs気温の散布図がプロットされます。 f:id:T_A_T:20190317154212p:plain

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

Numpy公式 >> numpy.loadtxt
Pythonの文法メモ > 【matplotlib】散布図の作成と体裁の変更
note.nkmk.me >> NumPyでCSVファイルを読み込み・書き込み(入力・出力)
matplotlib公式 >> matplotlib.pyplot.scatter

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

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