【问题标题】:how to construct a list of integers如何构造整数列表
【发布时间】:2019-08-20 13:45:19
【问题描述】:

我想绘制一个图:能量与 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

【问题讨论】:

    标签: python numpy matplotlib


    【解决方案1】:

    也许对你有用:

    更新 1:

    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()
    

    更新 2:

    也许您只是想(我想是这样)生成一个包含不同值的列表。然后,一个简化的方法:

    def fun(N):
        e = []
        for i in range(0, len(N)):
            e.append(calculation(N[i]))
        return e
    

    更新 3:

    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()
    

    【讨论】:

    • 我建议你简化你的函数,考虑最后只是和参数(N)。然后,您可以评估所需 N 范围之间的函数
    • 感谢您的快速回复。我将函数更改为:N = np.arange(0,10,1) plt.plot(N, energy(N)) plt.show()。我有这个错误:“只有整数标量数组可以转换为标量索引”
    • 你应该正确定义你的函数。那是你的问题。例如,N = np.arange(0,10,1) def energy(N): return 3*N plt.plot(N, energy(N)) plt.show()
    • 现在,您需要正确开发您的功能。你可以在函数内部做任何你想做的事情,但要小心你的返回只是 N 的一个函数
    • 我想创建一个 N 列表,然后创建一个 N 能量(N)函数的能量列表,然后将这两个列表称为 x,y 以绘制图形。所以继续
    猜你喜欢
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 2021-07-18
    • 2014-05-10
    • 2013-10-15
    • 2022-06-14
    • 2023-03-21
    • 2021-06-15
    相关资源
    最近更新 更多