
import numpy
import matplotlib

## k space path differences, in units of 1/L_M
GK = 4*pi/3
GM = 2*pi/sqrt(3)
MK = 2*pi/3

filename = ### path to band structure file

data = loadtxt(filename)

k_list = data[:, 0] #index of k points
k_ = empty(len(k_list)) #actual k space path
k_[0:100] = linspace(0, GK, 100)
k_[100:200] = linspace(GK, GK+MK, 100)
k_[200:300] = linspace(GK+MK, GK+MK+GM, 100)
k_[300:400] = linspace(GK+MK+GM, GK+MK+GM+GK, 100)
k_[400:500] = linspace(GK+MK+GM+GK, GK+MK+GM+GK+MK, 100)

energy_list = data[:, 1:] #list of energy values in meV
CBmin = min(energy_list[:, 4]) #conduction band minimum

for i in range(energy_list.shape[1]):
    plot(k_,energy_list[:,i]-CBmin)

ylabel(r'$E\ \mathrm{(meV)}$')
xticks( [GK,GK+MK,GK+MK+GM,GK+MK+GM+GK], [r'$\mathrm{K}$', r'$\mathrm{M}$', r'$\mathrm{\Gamma}$',r'$\mathrm{K}^{\prime}$'])
ylim(bs_ylim)
xlim(GK, GK+MK+GM+GK)