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

用c语言可以做网站吗百度推广外包哪家不错

用c语言可以做网站吗,百度推广外包哪家不错,黑龙江建设网管网,wordpress标签云怎么用本脚本通过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/88136.html

相关文章:

  • 网站的建设流程什么是seo教程
  • 如何做网站视频模板深圳网站设计实力乐云seo
  • 中山商城型网站建设百度推广和优化有什么区别
  • 如何做网站镜像企业网站制作价格
  • 互联网安全管理服务平台seo顾问服务公司
  • 网站倒计时怎么做看广告赚钱一天50元
  • 朝阳网站关键词优化莆田关键词优化报价
  • 网站优化潍坊百度seo优化
  • 安徽省建设工程信息网查询南京百度提升优化
  • 厦门网站设计大概多少钱九幺seo优化神器
  • 聚美联盟网站怎么做郑州网站建设公司哪家好
  • 我要建立一个网站网站制作流程是什么
  • 运行网站需要多少钱永久免费跨境浏览app
  • 武汉网站建设平台网络工程师是干什么的
  • java做网站是不是成本更高最佳搜索引擎
  • 怎样做网站分析优化网站排名需要多少钱
  • 做360网站优化快速排网站关键词优化推广
  • 佛山网站优化好宁波网站建设
  • 手机wordpress建站教程上海哪家seo公司好
  • 河南锦源建设有限公司网站一个完整的产品运营方案
  • 如何给异地网站做镜像网站免费优化
  • 关于地产设计网站网站流量数据
  • 赤峰网站建设免费永久注册顶级域名网站
  • 典型的o2o网站有哪些百度电脑版网址
  • 文字控图片在线制作临沂百度seo
  • wordpress网站关闭谷歌收录汕头网站排名优化
  • 青岛企业网站建设公司网站创建
  • 做外贸网站2345网址导航官网下载安装
  • 网站开发需要哪些硬件他达拉非的副作用和危害
  • 外贸商城b2c网站建设网络营销相关工作岗位