当前位置: 首页 > wzjs >正文

用c语言可以做网站吗b站推广入口2023破解版

用c语言可以做网站吗,b站推广入口2023破解版,建设仿优酷视频网站,国内重大新闻2020年本脚本通过Python实现电子能带结构数据的快速作图,能够从两个不同的数据文件(BAND.dat 和 wannier90_band.dat)中提取有效数据,并在同一坐标系下绘制对比图。 准备工作:使用VASPKIT处理获得能带数据BAND.dat&#xff…

本脚本通过Python实现电子能带结构数据的快速作图,能够从两个不同的数据文件(BAND.dat 和 wannier90_band.dat)中提取有效数据,并在同一坐标系下绘制对比图。

准备工作:使用VASPKIT处理获得能带数据BAND.dat,通过wannier90.x拟合获得紧束缚模型的电子能带 数据wannier90_band.dat。

注:BAND.dat中能量修改为未减去费米能级的绝对能量,如文件夹中保存有KLINES.dat文件,则用于绘制能带高对称点。

图片

运行效果如下,

import numpy as np
import matplotlib.pyplot as plt
import osplt.rcParams['font.size'] = 14  # 基础字体大小
plt.rcParams['axes.labelsize'] = 16  # 轴标签字体大小
plt.rcParams['xtick.labelsize'] = 12  # x轴刻度字体大小
plt.rcParams['ytick.labelsize'] = 12  # y轴刻度字体大小
plt.rcParams['legend.fontsize'] = 14  # 图例字体大小def read_data(filename):"""从文件中读取数据,跳过以#开头的行"""data = []with open(filename, 'r') as f:for line in f:if not line.startswith('#'):parts = line.strip().split()if len(parts) >= 2:try:x = float(parts[0])y = float(parts[1])data.append((x, y))except ValueError:pass  # 跳过无法转换为浮点数的行return np.array(data)def find_discontinuities(data, threshold=0.5):"""识别k点的不连续位置"""discontinuities = []x_diff = np.diff(data[:, 0])for i, dx in enumerate(x_diff):if abs(dx) > threshold:discontinuities.append(i + 1)  # 添加断点索引return discontinuitiesdef read_klines(filename):"""从KLINES.dat文件中读取k点位置"""k_points = []with open(filename, 'r') as f:for line in f:if not line.startswith('#'):parts = line.strip().split()try:x = float(parts[0])k_points.append(x)except (ValueError, IndexError):passreturn np.unique(k_points)  # 返回唯一的k点位置# 读取两个数据文件
band_data = read_data('BAND.dat')
wannier_data = read_data('wannier90_band.dat')# 创建图形
plt.figure(figsize=(10, 7))  # 增大图表尺寸# 如果存在KLINES.dat文件,则绘制背景网格线
if os.path.exists('KLINES.dat'):k_points = read_klines('KLINES.dat')for k in k_points:plt.axvline(k, color='lightgray', linestyle='-', linewidth=1.0, alpha=0.5)plt.xlim(min(k_points), max(k_points))# 绘制BAND.dat的数据
discontinuities_band = find_discontinuities(band_data)
prev_idx = 0
for idx in discontinuities_band:plt.plot(band_data[prev_idx:idx, 0], band_data[prev_idx:idx, 1], label='BAND.dat' if prev_idx == 0 else "", color='#45B7D1', linewidth=2.0, alpha=0.8)  # 柔和的蓝色prev_idx = idx# 绘制最后一段
plt.plot(band_data[prev_idx:, 0], band_data[prev_idx:, 1], color='#45B7D1', linewidth=2.0, alpha=0.8)# 绘制wannier90_band.dat的数据
discontinuities_wannier = find_discontinuities(wannier_data)
prev_idx = 0
for idx in discontinuities_wannier:plt.plot(wannier_data[prev_idx:idx, 0], wannier_data[prev_idx:idx, 1], label='wannier90_band.dat' if prev_idx == 0 else "", color='#FC8D62', linewidth=2.0, linestyle='--', alpha=0.8)  # 柔和的红色prev_idx = idx# 绘制最后一段
plt.plot(wannier_data[prev_idx:, 0], wannier_data[prev_idx:, 1], color='#FC8D62', linewidth=2.0, linestyle='--', alpha=0.8)# 设置图表属性
plt.xlabel('k-point')
plt.ylabel('Energy (eV)')
plt.title('Electronic Band Structure Comparison')
plt.legend()
plt.grid(True, axis='y', linestyle='--', alpha=0.3)# 设置纵坐标范围在0附近
plt.ylim(-10, 10)  # 根据需要调整范围# 保存图形
plt.tight_layout()
plt.savefig('band_structure_comparison.png', dpi=300, bbox_inches='tight')
plt.show()

http://www.dtcms.com/wzjs/194159.html

相关文章:

  • 福州做公司网站广州seo优化排名公司
  • 做美食的网站可以放些小图片搜索引擎收录
  • 网站限制上传图片大小商品推广软文范例300字
  • 帮忙做网站的协议发外链的论坛
  • 笔记本怎么建设网站百度数据研究中心官网
  • 网络营销课程设计报告郑州网站seo外包
  • 网站建设文案详情seo公司上海
  • 做网站一屏一屏的网站优化工具
  • 南京那些公司做网站营销型网站建设多少钱
  • 个人网站设计模板下载网站域名在哪买
  • 微信网站界面设计接广告的平台推荐
  • 深圳顶级做网站公司网络营销有哪些手段
  • 浙江网站建设哪家最好搜索引擎收录查询
  • 万宁网站建设营销推广app
  • 昆明定制网站建设seo技巧是什么意思
  • 贵阳官网建设价格广东百度seo关键词排名
  • 做网站与全网营销搜索推广排名优化市场推广的方法和规划
  • 做网站简约学校网站网站制作哪家公司好
  • 建设实木餐桌椅移动网站什么是网络营销推广
  • 遵义网站制作小程序分析网站
  • 专业的做网站nba最新消息球员交易
  • 用织梦做的网站网络营销推广方案有哪些
  • 做网站需要多少带宽网址域名注册信息查询
  • 网站页面多少武汉刚刚突然宣布
  • 想做一个赌钱网站怎么做河南网站推广那家好
  • 泰州政府门户网站建设百度热点排行榜
  • 德州北京网站建设厦门网站建设
  • 福州思企互联网站建设公司怎么样网站结构有哪几种
  • app开发网站建设搜索引擎竞价排名
  • 深圳网站制作开发惠州百度推广优化排名