Plot2でのマクロ利用 (2020/05/10作成)

OUOperatingGrant.png
plot2-example.png

Plot2とは

  • Plot2とはMac用の科学用2Dプロットプログラムで、App Storeからダウンロードできます。私は普段ラマンスペクトル等のプロットによく利用してます(Proの方)。ピークのfitが必要な場合は、Fitykを使うという棲み分けとなってます。
  • ただ以下のようにterminalから動かす場合は、App Storeではなく、作者のページからダウンロードしたものを使う必要があります。
  • 非常に重要:Plot2でプロットされたパターンは、データ数が多いと(粉末回折パターンの場合は確実に)データが間引きされてプロットされます。そのため表示されたパターンが実際のものと異なって見える場合があります。パターンが現れた後は、必ずInspectorの上部の左端アイコンをクリックして、Enable drawing of every data pointをチェックしてください。 残念ながらマクロから制御する方法はなく、Preferenceで変えることはできません。

RIETAN-FP結果プロットへのマクロ利用

  • Plot2にはマクロも用意されていて、GUIを使わずに、プロットを自由にカスタマイズすることができます。さらにMySQL, Perlによるフィルターも用意されていますが、まだ十分に使いこなせていません。
  • Plot2はRIETAN-FP(Rietveld法プログラム)の結果を表示するのにも使っていて、以前にgpd2plot2.pyというPythonスクリプトを作りました。これはRIETAN-FPが作成したhoge.gpdを読んで、それをPlot2で処理しやすい形式に加工するものです。ただ、パターンがきちんと見えるようになるには、読み込んだ後にPlot2のInspectorから色々と調整をする必要がありました。一度そのような調整をした時の結果をマクロとして保存しておくと、次回からはそのマクロを呼び出すことである程度は手抜きができるのですが、それでもまだ色々と調整が必要でした(特にスケーリングなど)。
  • 調整などはマクロを使ってやれせればいいのですが、以前からPlot2はterminalからデータやマクロを読み込み実行できると記載されてました。しかし、しばらく前に試した時にはうまく動かせませんでした。ところが、最近ダウンロードしたバージョンでは問題なく実行できるようになってました。そこでgpd2plot2.pyを改良して、色々な調整にマクロを利用して自動化するようにしました。以前のようにhoge.gpdを処理したファイルを作るところまでは同じですが、今回はこれを作成したマクロ中から最初に読み込ませて、その後マクロを利用します。このPythonコードをRIETAN.commandの最後で起動するようにしておけば、RIETAN-FP実行終了時にプロットが自動的に行われます。さらにR因子や相の名前もhoge.lstから読んで、プロット上に表示するようにしました。
  • いくつかのマクロを使う例:
    import hoge.dat 0 ','
    hoge.datをASCIIファイルとして読み込む(0)、区切りはコンマを指定。','がないと、デフォルトのtab区切りになります。
    bstyleysticks yes 4
    bstickcolor 0 0 0 4 1
    bsticksize 5 4
    バッファー4のデータをy方向stick表示、色は黒、サイズは5 pixelと指定しています。これは回折線位置を示すために使っています。もちろんPythonの中では、4の部分は変数にして回しています。bstyleysticks以外にbstylesymbols, bstylelinesとかがあります。
    # axis attributes
    setaxis yes yes no no 
    range 1 5 120
    range 2 -1000 10000
    これはプロットのスケーリングで、range 1は横軸、range 2は縦軸。実際に与える値は、hoge.gpdを読んで、横軸縦軸の最大、最小値を求めてから設定することになります。
    atext bottom "2theta / degree" : atext left "Intensity / a.u."
    これは軸につける名前や単位の設定です。
  • RIETAN.commandの最後に
    ./gpd2plot2.py $sample.gpd &
    を追加しておくとRIETANの計算後、自動的にプロットしてくれます。
  • 一応何とか最低限のマクロを適用して、計算結果を直ちにチェックする目的には十分なプロットが出せるようになりました。3相のRietveld refinementの結果を、これでプロットさせたものが一番上のグラフです。この場合も、RIETAN.commandからgpd2plot2.pyを自動起動させてます。これは最初に注意したEnable drawing of every data pointをチェックする以外は、何ら調整せずに自動でプロットされたものです。まだ不完全ですが、参考に今回改造したコードgpd2plot2.pyを置いておきます。
  • なお、RIETANの計算を続けて何度も実行すると、起動しているPlot2がどんどん増殖しますので、それらを終了させてやる必要があります。

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-05-10 (日) 12:07:30 (94d)