import matplotlib.pyplot as plt
import numpy as np
#a=0.15nm,γ = 3ev
from mpl_toolkits.mplot3d import Axes3D #绘制3D坐标的函数
fig1 = plt.figure() #创建一个函数对象
ax = Axes3D(fig1) #用绘图对象创建一个axes的对象(3D坐标)
x = np.arange(-5,5,0.1)
y = np.arange(-5,5,0.1)
x,y = np.meshgrid(x,y)def fun(x,y):a = 4.0*np.cos(np.sqrt(3)/2*1.5*x)*np.cos(1.5/2*y)b = 4.0*np.cos(1.5*y/2)*np.cos(1.5*y/2)c1 = 3*np.sqrt(1+a+b)c2 = (-1)*3*np.sqrt(1+a+b)return c1, c2z1, z2 = fun(x,y)
ax.plot_surface(x, y, z1, rstride = 1, cstride = 1, cmap = plt.get_cmap('rainbow'))
ax.plot_surface(x, y, z2, rstride = 1, cstride = 1, cmap = plt.get_cmap('rainbow'))
#stride行之间的跨度,cstride是列之间的跨度,cmp是颜色表
ax.set_xlabel('kx', fontsize = 10)
ax.set_ylabel('ky', fontsize = 10)
ax.set_zlabel('E', fontsize = 10)
ax.set_title('Energy Band Structure of Graphene')
plt.savefig("石墨烯.jpg")
plt.show()
# ax.set_zlim(-10,10)# import os
# os.system('pip install --upgrade matplotlib --user')使用三维坐标函数时调用库的需求

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!