我想绘制一个图:能量vs.N。那么我如何计算N的不同值的能量(此函数的自变量),然后在Y轴上绘制能量,并绘制与每个能量对应的每个N值x轴上的值。
def energy(N, k, a=4.05):
fcc = fcc100('Al', (1, 1, N), a=a, vacuum=7.5)
fcc.center(axis=2)
calc = GPAW(nbands=N * 3,
kpts=(k, k, 1),
h=0.25,
txt='slab-%d.txt' % N)
fcc.set_calculator(calc)
e = fcc.get_potential_energy()
calc.write('slab-%d.gpw' % N)
return e
答案 0 :(得分:0)
也许对您有用:
import numpy as np
import matplotlib.pyplot as plt
def f(t):
return np.exp(-t) * np.cos(2*np.pi*t)
t1 = np.arange(0.0, 3.0, 0.01)
plt.plot(t1, f(t1))
plt.show()
也许您只是想(我认为是)生成具有不同值的列表。然后,一个简化的方法:
def fun(N):
e = []
for i in range(0, len(N)):
e.append(calculation(N[i]))
return e
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'N':[23,78,22,19,45,33,20],'Energy':[1000,2000,3000,4000,5000,5500,6000]})
# a scatter plot comparing num_children and num_pets
df.plot(kind='scatter',x='N',y='Energy',color='red')
plt.show()