Python3でtxtファイルからグラフを書く
データロガーから取得してきた値等、外部のtxtファイルを読んできて
プログラムで処理したいことがしばしばあります。
ググったら割とすぐに出てきますが、手元にも残しておきたいので
Python3でtxtファイル等の外部ファイルの中身を読んでくる方法のメモです。
ついでにmatplotlib
を使ってデータをグラフにするところまでメモしておきます。
matplotlibをいれる
matpllotlibがまだ入ってない人はインストールしておきます。pip
を使って
pip3 -m install matplotlib
これでmatplotlib
がインストールされました。
データを読んできてグラフを表示
続いて読みたいサンプルファイルを用意します。
僕はこんなサンプルファイルを用意しました。
カンマ区切りでデータが入っています(画像は上の方数行のみ)
これをPythonで読み込み、かつmatplotlib
を用いてグラフにします。
ソースコードはこんな感じ。
# coding: utf-8 from pylab import * import math def main(): ####データ読み込み##### f = open('test_77.txt',"r") #生データの入ったファイルを読み込み xlist = list() ylist = list() for line in f: s = line.split(",") xx = s[0] yy = s[1][:-1] xlist.append(xx) ylist.append(yy) f.close() ####データ読み込みここまで#### ## lines = plot(xlist, ylist, 'k',label="test") #線形プロットをするときは ## setp(lines, color='r', linewidth=2.0) #この2行のコメントを外し,以下の1行をコメントに scatter(xlist,ylist,s=15,c='b',label="77K") #散布図用 c='色' xlabel('magnetic field[Oe]',fontsize=15) #横軸のタイトル ylabel('magnetization [emu]',fontsize=15)#縦軸のタイトル grid() #グリッド線の表示 legend(loc='lower right') #凡例の表示,loc='位置' xmax=3100 ymax=35 xmin=-3100 ymin=-35 axis([xmin,xmax,ymin,ymax]) #グラフの最大値最小値の範囲設定 if __name__ == '__main__': main() show()
プログラムの前半でtest_77.txt
というファイルを開き、1列目、2列目のそれぞれの数値を配列として読み込んでいます。
後半はグラフを描写するための内容。
で、上記プログラムを使って実際に書いてみたグラフはこんな感じ。
Dyを液体窒素につけて77Kまで冷やし、磁場を変化させていった時のDyの磁化の変化をプロットしています。
磁場の上げ過程と下げ過程でヒステリシスが見えています。
それはおいといて、こんな感じでtxtファイルの読み込みとグラフの描写ができます。