StandardGraph.xlsmによるバンド構造・状態密度グラフの作成
(VASP)
科学誌レベルのグラフの描き方
では、VBA入りのtemplateファイル StandardGraph.xlsm
を使うことで、
Microsoft Excel
だけで学会・科学誌で使えるグラフを描く方法を説明しました。
本ページでは、python + openpyxl と StandardGraph.xlsm
を利用し、第一原理バンド計算プログラム
VASP + vaspkit
により計算したバンド構造と状態密度をグラフ化する方法を説明します。


必要なファイル:
vasp2xlsm.pyの起動時引数:
- --mode: band or dos
- --work_dir: 計算データのあるディレクトリ
- --Emin、--Emax: グラフ描画のエネルギー範囲
- --template: StandardGraph.xsmのディレクトリ。初期値は--work_dir
- --output_excel: 出力ファイル名。初期値は --work_dir の {mode}.xlsm
- -width,--height: グラフサイズ
- --chart_cell: バンド図を出力する位置を cellアドレス (J10
など) で指定
グラフの整形の仕方については、科学誌レベルのグラフの描き方
をご覧ください
状態密度の作成
- vaspkitで状態密度入力ファイルを作成し、VASPを実行
- StandardGraph.xlsm
を計算結果のディレクトリにダウンロード
- > python vasp2xlsm.py --mode=dos
- dos.xlsm
が出力される。VBAシートに全状態密度、原子ごとの部分状態密度図が作成されている。
- openpyxl
のバージョンによっては、縦軸の目盛りが描かれない。
その場合、Add X ticks、Add Y
ticksボタンで目盛り・目盛り文字列を追加。
- Change Font でフォント、フォントサイズを設定
- Y軸目盛りの位置を左端などに移動したい場合、Add Y
labels 機能を使う
- パーツの位置を調整して仕上げ
バンド構造の作成
- vaspkitでバンド構造入力ファイルを作成し、VASPを実行
- StandardGraph.xlsm
を計算結果のディレクトリにダウンロード
- > python vasp2xlsm.py --mode=band
- band.xlsm
が出力される。VBAシートにバンド図が作成されている。
- openpyxl
のバージョンによっては、縦軸の目盛りが描かれない。
その場合、Add Y
ticksボタンで目盛り・目盛り文字列を追加。
- Change Font でフォント、フォントサイズを設定
- シート左上に、X軸の k
点の位置と文字列が出力されている。
Add X labels で k点ラベルを追加
- パーツの位置を調整して仕上げ