24小时热门版块排行榜    

CyRhmU.jpeg
查看: 4150  |  回复: 28
【奖励】 本帖被评价18次,作者董大瓜增加金币 14.4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

董大瓜

新虫 (小有名气)


[资源] MATLAB 重绘MS导出的*.csv格式的能带图,可以自动分开a画lpha和beta。

自己做的,提供给大家一起交流学习。
调用格式如下:
%% 从*.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 ]
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : Ni_BandStrBandStructure.csv
  • 2013-04-12 09:11:46, 85.32 K
  • 附件 2 : plotCsvBandStructure.m
  • 2013-04-13 15:58:11, 2.08 K

» 收录本帖的淘帖专辑推荐

第一性原理 科研技巧 我的第一原理学习贴 MS & VASP
兴趣

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tsglss

铁杆木虫 (著名写手)


★★★★★ 五星级,优秀推荐

继续努力……前途无量!
11楼2013-04-12 20:30:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 29 个回答

董大瓜

新虫 (小有名气)


笑脸的地方时这样的。一个冒号和右半块括号
x(L/Num_Band,: )=[];
y(L/Num_Band,: )=[];
2楼2013-04-12 09:26:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wei520jing

铁虫 (初入文坛)


★★★★★ 五星级,优秀推荐

师弟,继续努力……前途无量!
6楼2013-04-12 09:33:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

董大瓜

新虫 (小有名气)


引用回帖:
6楼: Originally posted by wei520jing at 2013-04-12 09:33:50
师弟,继续努力……前途无量!

刚开始学MS。。。新手,向大师学习。。。
7楼2013-04-12 09:51:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
简单回复
qyyos3楼
2013-04-12 09:33   回复  
五星好评  顶一下,感谢分享!
2013-04-14 11:35   回复  
五星好评  顶一下,感谢分享!
2013-04-14 21:17   回复  
五星好评  顶一下,感谢分享!
2013-04-14 21:17   回复  
顶一下,感谢分享!
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复(可上传附件)
信息提示
请填处理意见