PythonでCSVファイルを読み込んでグラフ化する
実験レポートで、実験結果をcsvファイルでまとめて、それをグラフ化するという作業をしたため、おば描きとしてまとめておく。
使用するパッケージ?
- pandas
- matplotlib
- matplotlib.pyplot
- numpy
手順
- pandasでcsvを読み込む
- 読み込んだもののデータ型を確認。(データ型がintかfloatでなかったら、intかfloatに変更)(pandasのastypeメゾット)
- パラメータに対して昇順にそーと(pandasのsort_valueメゾット)
- pyplotでグラフを描写
- pyplotをpngファイルで保存
+α - 対数をとる(numpy)
なお今回は、Jupyter上で実行した。
以下のものがソースコードの一例。
import pandas as pd import numpy as np import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt %matplotlib inline data = pd.read_csv("a2.csv") lux = data['LUX'].astype('int64') data = data.sort_values(by="LUX", ascending=True) log_data = np.log(data) # グラフ作成 plt.figure(1) plt.plot(log_data['LUX'],log_data['resistance(o-mu)'],marker="o") #グラフの軸 plt.xlabel('$\log L(\log \mathrm{Lux})$') plt.ylabel('$\log R(\log \mathrm{\Omega})$') plt.savefig('A2result.png') #pngファイルとして保存 plt.show()
以下具体的に、一つ一つの手順を見ていく。
1. pandasでcsvを読み込む
import pandas as pd data = pd.read_csv("a2.csv")
でcsvファイルを読み込む。
2. 読み込んだもののデータ型を確認。(データ型がintかfloatでなかったら、intかfloatに変更)
データ型の確認は、
data.columns
でデータラベルを確認して、
data['LUX']
もしくは
data.LUX
で確認する。 もしくは
data_col = data.columns data[data_col[0]] #data[data_col[ラベル番号]]
でデータ型は確認できる
データ型の変更は以下のコマンド
data['LUX'].astype('int64')
データ型の指定はdata['LUX'].astype('int')やdata['LUX'].astype('float')でも可能
3. パラメータに対して昇順にソート
data.sort_values(by="LUX", ascending=True)
で、LUXについて、昇順でソートされる。降順にしたければ、ascending=Flaseにすれば良い(多分)
4. pyplotでグラフを描写
import matplotlib.pyplot as plt %matplotlib inline data_col = data.columns #グラフの作成 plt.figure(1) plt.plot(data[data_col[0]],data[data_col[1]],marker="o") #グラフの軸 plt.xlabel(data[data_col[0]].name) plt.ylabel(data[data_col[1]].name) #グラフ表示 plt.show()
5. pyplotをpngファイルで保存
import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt %matplotlib inline data_col = data.columns #グラフの作成 plt.figure(1) plt.plot(data[data_col[0]],data[data_col[1]],marker="o") #グラフの軸 plt.xlabel(data[data_col[0]].name) plt.ylabel(data[data_col[1]].name) #グラフ保存 plt.savefig('A2result.png')
参考にしたページ
pandasについて
- 【Python入門】pandasでデータを扱おう
- pandasのデータ型dtype一覧とastypeによる変換(キャスト)
- データ分析で頻出のPandas基本操作...何かで参考にしたはずなんだけど何で参考にしたか忘れた
- Python Pandasでのデータ操作の初歩まとめ − 前半:データ作成&操作編
pyplotについて
numpyについて - 【Python入門】numpyで計算をしてみよう - NumPyの数学関数・定数まとめ
numpy×pandasについて
[プラス]lamda式について