.. toctree:: ================== 実験データの処理 ================== 研究では日常的に測定したデータをプロットして図を作成します。簡単なデー タと図であれば、Excel等で手動で作成しても良いですが、少しデータを加工 してプロットしたい場合、チマチマ手動で処理するのは面倒です。測定データ をpythonプログラム1つでプロットと作図までできれば、日常の作業が短縮さ れます。いくつかデータをプロットする簡単な例を示します。 データを最大強度で規格化してスタックプロット ============================================ いくつかの試料や条件を変えて測定した分光スペクトルやXRDパターンをスタッ クしてプロットしてみます。データを最大強度1で規格化して、y方向にスタッ クしてプロットします。CUI上から引数で複数のファイルを渡してスタックプ ロットさせます。また、XYのプロット範囲、出力するファイルをargparseを使っ てコマンドオプションで渡すようプログラムしています。 .. literalinclude:: stack_plot.py :caption: stack_plot.py プログラムの実行は引数でデータの入った複数のファイルを指定します。 .. code-block:: none stack_plot.py 0h.dat 6h.dat 12h.dat 24h.dat 48h.dat プロット範囲や出力ファイルを指定すれば、図のファイルを生成できます。 .. code-block:: none stack_plot.py 0h.dat 6h.dat 12h.dat 24h.dat 48h.dat -o hoge.png -xl 10 50 -yl -0.1 5.7 これで次のようなxrd_stack.pngが生成されます。 .. image:: xrd_stack.png :width: 500px :align: center 測定データのeye guideの線を引く =============================== 測定データの傾向を示すために、データに近似線を引くことがあります。理論 式があれば、非線形フィッテング等で近似線を引きますが、特に理論式ない場 合は、多項式やスプラインで近似曲線を作ってデータに線を引きます。cosカー ブの適当な測定データを作って近似曲線を作成してみます。 .. literalinclude:: approximate.py :caption: approximate.py :linenos: 実行すると次のようなグラフが得られます。splineは必ずデータ点を通るよう に近似線を作成します。 .. image:: approximate.png :width: 500px :align: center パラメータ範囲を指定してフィッテング ==================================== 実験的に観測したスペクトルをガウス関数等の釣鐘型の関数でフィッテング (ピーク分離)して面積(成分比)を求めることは、よく行われます。フィッテン グの時に、ガウス関数のパラメータを完全に自由にしてフィッテングすると物 理的におかしいパラメータになることがあります。最適化するパラメータの範 囲を指定することで物理的におかしいパラメータにフィッテングされることを 避けることができます。 パラメータの範囲を指定した場合としない場合でフィッテングするプログラム を以下に示します。モデルデータ(y_exp)は、強度の異なる2つの正負のガウス 関数を足し合わせ作成しています。y_expの範囲制限有り(bound)と無し(no bound)でフィッテングしています。直線がフィッテングで求めたラインで、点 はフィッテングデータです。 .. literalinclude:: fit.py :caption: fit.py .. image:: fit.png :width: 1000px :align: center