我试图用pymatgen绘制DOS(状态密度),但我无法使其工作。第一次在python中遇到self
和{
这个link解释了具有我需要的函数的包(我需要使用类CompleteDos
的get_site_t2g_eg_resolved_dos(site)
部分)。这个link有这些函数的源代码。看看网上找到的examples我做了这段代码
from pymatgen.electronic_structure.dos import CompleteDos
from pymatgen.electronic_structure.plotter import DosPlotter
from pymatgen.electronic_structure.core import Spin, Orbital
data = CompleteDos.get_site_t2g_eg_resolved_dos
plot = DosPlotter(data)
plot.get_plot(-5,5).show()
该代码返回一个错误,我确信这是因为函数get_site_t2g_eg_resolved_dos
没有正确使用。在
即使您不知道pymatgen提供的链接,我认为您可以帮助我正确地使用函数,我将非常感谢。提前谢谢!在
编辑:我现在尝试的代码是什么样子的,请两个都留下,因为我不确定我是否正确地执行了操作。在
^{pr2}$输出错误:
Traceback (most recent call last):
File "t2g2g.py", line 21, in <module>
data= a.get_site_t2g_eg_resolved_dos(structure)
File "/usr/local/lib/python2.7/dist-packages/pymatgen/electronic_structure/dos.py", line 351, in get_site_t2g_eg_resolved_dos
for s, atom_dos in self.pdos.items():
AttributeError: 'list' object has no attribute 'items'
如果你还没有放弃这里就是解决办法
您需要指定站点和模式(t2g/eg)才能绘图。在
相关问题 更多 >
编程相关推荐