前言
态密度(DOS)和能带(BANDS)联合作图方案总结。
目标
因为BANDS根据RGB三色作图,所以最多显示三种元素。
网上脚本缺少字体类型、字号等方面调控。
解决方案
下载所有方案。
sumo
1
2
3
4
|
[I]
p = r
[Pb]
p = b
|
./bands/colours.style,
1
2
3
|
xtick.major.size : 0
# font.size : 18
# https://viscid-hub.github.io/Viscid-docs/docs/dev/styles/seaborn-ticks.html
|
1
|
sumo-dosplot --config colours.conf --format jpg --dpi 300 --ylabel PDOS --columns 1 --xmin -2 --xmax 2
|
By default, a significant contribution is defined as greater than 3 % of the max total density of states.
1
|
sumo-dosplot --elements I.p,Pb.p --config colours.conf --format jpg --dpi 300 --ylabel PDOS --columns 1 --xmin -2 --xmax 2
|
DOS
1
|
sumo-bandplot --project Pb.s,Pb.p,I.s,I.p --mode stacked --circle-size 90 --format jpg --dpi 300
|
BANDS
1
|
sumo-bandplot --dos ../dos/vasprun.xml --project I.p,Pb.p --elements I.p,Pb.p --config colours.conf --format jpg --dpi 300 --ymin -2 --ymax 2 --dos-label "DOS" --band-edges --style colours.style -p dos
|
DOS+BANDS
Pymatgen
1
2
|
conda install -c conda-forge pymatge
pip install pymatgen
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#!/usr/bin/env python
# -*-coding:utf-8 -*-
import os
import re
import linecache
import math
import shutil
import numpy as np
import matplotlib.pyplot as plt
from pymatgen.io.vasp.outputs import Vasprun
from pymatgen.electronic_structure.plotter import BSDOSPlotter,BSPlotter,BSPlotterProjected,DosPlotter
os.chdir(os.path.split(os.path.realpath(__file__))[0])
dos_vasprun=Vasprun("./dos/vasprun.xml")
dos_data=dos_vasprun.complete_dos
# https://pymatgen.org/pymatgen.io.vasp.outputs.html?highlight=get_band_structure#pymatgen.io.vasp.outputs.Vasprun.get_band_structure
bands_vasprun = Vasprun("./bands/vasprun.xml",parse_projected_eigen=True)
bands_data = bands_vasprun.get_band_structure(line_mode=True)
dos_bands = BSDOSPlotter(bs_projection='elements', dos_projection='elements',vb_energy_range=2, cb_energy_range=2, egrid_interval=1, fixed_cb_energy=True, font='Microsoft YaHei', axis_fontsize=24, tick_fontsize=20, legend_fontsize=20, bs_legend='best', dos_legend='best', rgb_legend=True, fig_size=(11, 8.5))
# https://pymatgen.org/pymatgen.electronic_structure.plotter.html
dos_bands.get_plot(bs=bands_data, dos=dos_data)
plt.savefig('dos_bands.jpg', dpi=300)
|
DOS+BANDS
pymatgen_bs_dos_plot
Band Structure of NiO
pymatgen绘制能带态密度图(band+DOS)
vaspkit
- 使用
vaspkit分别生成DOS和BANDS的dat文件,然后使用Origin、Python + Matplotlib/Seaborn、Matlab等作图。
bandstructureplots
Projected Band Structure and DOS (Individual Atoms)
Projected Band Structure and DOS
PyProcar