VASPKIT论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: VASPKIT
查看: 975|回复: 3

matlab脚本画投影能带没有横坐标和网格线

[复制链接]

1

主题

2

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2023-5-22 18:48:17 | 显示全部楼层 |阅读模式

投影能带

投影能带

您好,我用vaspkit处理投影能带,用群里提供的matlab脚本画图,但是画出来的图片为什么和给的示例不一样,没有横坐标,也没有图片中的白色网格线,麻烦您帮忙看一下,谢谢。我把我的文件都上传到附件了,麻烦帮忙看一下,谢谢。

Nb_d.rar

171.75 KB, 下载次数: 1

回复

使用道具 举报

0

主题

6

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2023-5-24 22:57:56 | 显示全部楼层
  1. % First run vaspkit (version => 1.2.3) with task 216, 257 or 285 to get MOMENTUM.grd, ENERGY.grd and WEIGHT.grd

  2. clc;clear;clear all;

  3. momentum=load('MOMENTUM.grd');
  4. energy=load('ENERGY.grd');
  5. weight=load('WEIGHT.grd');
  6. ymin=-5.0;
  7. ymax=5.0;
  8. fig_title =' Nb-d'    ;

  9. % Read content from KLABELS, assign values to kpoint_value and k_value
  10. fid = fopen('KLABELS','r');%打开文件句柄
  11. FormatString='%s';
  12. High_Symmetry_Kpoints=textscan(fid,FormatString,'HeaderLines',1,'Delimiter',''); %跳过第1行,以空格为数据的分隔符
  13. High_Symmetry_Kpoints{1}(end)=[];  %删除最后一行
  14. %初始化
  15. kpoint_value = cell(1,length(High_Symmetry_Kpoints{1}));
  16. k_value = length(High_Symmetry_Kpoints{1});
  17. fclose(fid);%关闭文件句柄
  18. for i = 1:length(High_Symmetry_Kpoints{1})
  19. a  = strsplit(High_Symmetry_Kpoints{1,1}{i,1},' ');  
  20. kpoint_value(i)  =  a(1);
  21. k_value(i) = str2double(cell2mat(a(2)));
  22. end            
  23. momentum_min = min(momentum(:));
  24. momentum_max = max(momentum(:));
  25. k_value(length(k_value))=momentum_max;
  26. k_value(1)=momentum_min;
  27. energy_min   = min(energy(:));
  28. energy_max   = max(energy(:));
  29. colormap('jet')
  30. set(gca,'Fontsize',20)

  31. %subplot(1, 5,subfig_number)
  32. fig = pcolor(momentum, energy, weight);
  33. shading interp;
  34. set(fig, 'LineStyle', 'none')
  35. title(fig_title)
  36. ylabel('E-E_F (eV)')
  37. ylim([ymin ymax]);
  38. set(gca,'ytick',ymin:1:ymax)
  39. set(gca, 'XTickLabel', kpoint_value , 'XTick', k_value,'Fontname', 'Times newman','Fontsize',20)

  40. line([momentum_min momentum_max], [0 0], 'LineStyle', '--', 'Color', 'w', 'LineWidth',1)                                
  41. for a=2:1:length(k_value)-1
  42. line([1 1]*k_value(a), [energy_min energy_max], 'LineStyle', '--', 'Color', 'w', 'LineWidth',1)
  43. end
复制代码
回复

使用道具 举报

0

主题

6

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2023-5-24 23:08:14 来自手机 | 显示全部楼层
简单修改了一下,你用这个代码算一下看看
回复

使用道具 举报

1

主题

2

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2023-5-25 10:21:28 | 显示全部楼层
Dirac-learn 发表于 2023-5-24 23:08
简单修改了一下,你用这个代码算一下看看

太感谢您了,我去试一下,多谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|VASPKIT论坛 ( 陕ICP备2020017291号 )

GMT+8, 2024-11-30 14:30 , Processed in 0.100830 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表