ナルミヤの備忘録(仮)

ナルミヤが学んだことなどを書き記していくブログ(方向性模索中。)

PythonでCSVファイルを読み込んでグラフ化する

実験レポートで、実験結果をcsvファイルでまとめて、それをグラフ化するという作業をしたため、おば描きとしてまとめておく。

使用するパッケージ?

  • pandas
  • matplotlib
  • matplotlib.pyplot
  • numpy

手順

  1. pandasでcsvを読み込む
  2. 読み込んだもののデータ型を確認。(データ型がintかfloatでなかったら、intかfloatに変更)(pandasのastypeメゾット)
  3. パラメータに対して昇順にそーと(pandasのsort_valueメゾット)
  4. pyplotでグラフを描写
  5. 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ファイルを読み込む。

f:id:buddasls54:20180508224545p:plain

2. 読み込んだもののデータ型を確認。(データ型がintかfloatでなかったら、intかfloatに変更)

データ型の確認は、

data.columns

でデータラベルを確認して、 f:id:buddasls54:20180508225510p:plain

data['LUX']

もしくは

data.LUX

で確認する。 f:id:buddasls54:20180508225515p:plain もしくは

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にすれば良い(多分) f:id:buddasls54:20180508231036p:plain

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()

f:id:buddasls54:20180508233133p:plain

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')

f:id:buddasls54:20180508234124p:plain

参考にしたページ

pandasについて

pyplotについて

numpyについて - 【Python入門】numpyで計算をしてみよう - NumPyの数学関数・定数まとめ

numpy×pandasについて

[プラス]lamda式について