import matplotlib.pyplot as plt
from pymatgen.io.vasp.outputs import Vasprun
from pymatgen.electronic_structure.plotter import BSDOSPlotter,\
BSPlotter,BSPlotterProjected,DosPlotter
# read vasprun.xml,get band and dos information
bs_vasprun = Vasprun("./vasprun.xml",parse_projected_eigen=True)
bs_data = bs_vasprun.get_band_structure(line_mode=True)
dos_vasprun=Vasprun("./vasprun.xml")
dos_data=dos_vasprun.complete_dos
# set figure parameters, draw figure
banddos1_fig = BSDOSPlotter(bs_projection=None, dos_projection=None, vb_energy_range=5, fixed_cb_energy=5)
banddos1_fig.get_plot(bs=bs_data, dos=dos_data)
plt.savefig('banddos.png')
pbandpdos2_fig = BSDOSPlotter(bs_projection='elements', dos_projection='elements',\
vb_energy_range=5, fixed_cb_energy=5)
pbandpdos2_fig.get_plot(bs=bs_data, dos=dos_data)
plt.savefig('pbandpdos.png')
band2_fig = BSPlotter(bs=bs_data)
band2_fig.plot_brillouin()
plt.savefig('brillouin.png')
所得图像如下所示:

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。