自己做的,提供给大家一起交流学习。
调用格式如下:
%% 从*.csv文件绘制Material Studio的能带图
%*********************************************************************
%plot band structure form *.csv file
%plotCsvBandStructure(FileName,Num_Band,id_kpts,label_kpts,TitleName,Axis)
%example:plotCsvBandStructure('ZnO_BandStr Band Structure.csv',30,[1 7 21 27 41 53 59 66],'G|A|H|K|G|M|L|H','ZnO Band Structure',[0 1 -3 10]);
%FileName:文件名
%Num_Band:能带条数,在*_BandStr.castep文件里Band Structure Parameters下
% 参数number of bands / k-point的值
%id_kpts:特殊K点
%label_kpts:特殊K点名称,MS能带图横坐标上显示的字母
%TitleName:能带图名称
%Axis:坐标轴范围
%Notes:MS exported csv files of band structure have two columns
% first is K points positions, and second is corresponding energy
% actual points number is Num_Pts-1
% by 董大瓜
%*********************************************************************
function plotCsvBandStructure(FileName,Num_Band,id_kpts,label_kpts,TitleName,Axis)
M=csvread(FileName);
if size(M,2)==4
Draw(M(:,1:2),Num_Band,'alpha',id_kpts,label_kpts,TitleName,Axis);%alpha
Draw(M(:,3:4),Num_Band,'beta',id_kpts,label_kpts,TitleName,Axis);%beta
else
Draw(M,Num_Band,'',id_kpts,label_kpts,TitleName,Axis);
end
function Draw(BandData,Num_Band,spin,id_kpts,label_kpts,TitleName,Axis)
x=BandData(:,1);
y=BandData(:,2);
L=size(BandData,1);
x=reshape(x,L/Num_Band,Num_Band);
y=reshape(y,L/Num_Band,Num_Band);
x(L/Num_Band,: )=[];
y(L/Num_Band,: )=[];
h=figure;
plot(x,y,'k-+','LineWidth',1);
ylabel('Energy(eV)');
line([0 1],[0 0],'Color','k','LineWidth',1,'LineStyle','--'); %Fermi energy line
% special K-points marker
loc_kpts = x(id_kpts);
set(gca,'XTick',loc_kpts,'XTickLabel',label_kpts);
line([loc_kpts;loc_kpts],repmat(get(gca,'yLim')',1,size(id_kpts,2)),'Color','k');
axis(Axis);
set(h,'outerposition',get(0,'screensize'));
if ~isempty(spin)
xlabel(spin);
title(strcat(TitleName,'-',spin));
saveas(h,strcat(TitleName,'-',spin,'.jpg'));
else
title(TitleName);
saveas(h,strcat(TitleName,'.jpg'));
end
display('by DongJingYu');
Ni Band Structure-alpha.jpg
Ni Band Structure-beta.jpg
ZnO Band Structure.jpg[ Last edited by 董大瓜 on 2013-4-13 at 15:58 ] |