绘制晶格材料三维晶格图

2018-12-23  本文已影响0人  渔家傲_俞
In [1]: %matplotlib inline

绘制3D supercell

创建nodes

ln [3]:from catplot.grid_components.nodes import Node3D

In [4]:
n1 = Node3D([0.0, 0.0, 0.0], color="#0F387A")
n2 = Node3D([0.0, 0.5, 0.5], color="#5A5A5A", size=200, alpha=0.6)
n3 = Node3D([0.5, 0.0, 0.5], color="#5A5A5A", size=200, alpha=0.6)
n4 = Node3D([0.5, 0.5, 0.5], color="#5A5A5A", size=200, alpha=0.3)

#
创建辅助nodes
In [5]:
an1 = Node3D([1.0, 0.0, 0.0], color="#0F387A")
an2 = Node3D([0.0, 1.0, 0.0], color="#0F387A")
an3 = Node3D([0.0, 0.0, 1.0], color="#0F387A")

#创建edges
In [6]:from catplot.grid_components.edges import Edge3D

In [7]:
ex = Edge3D(n1, an1, width=6)
ey = Edge3D(n1, an2, width=6)
ez = Edge3D(n1, an3, width=6)

In [8]:
e1 = Edge3D(n1, n2, color="#5A5A5A")
e2 = Edge3D(n1, n3, color="#5A5A5A")
e3 = Edge3D(n1, n4, color="#5A5A5A")
#创建 supercell
In [9]:from catplot.grid_components.supercell import SuperCell3D
In [10]:supercell = SuperCell3D([n1, n2, n3, n4], [ex, ey, ez, e1, e2, e3])
#创建3D画布
In [11]:from catplot.grid_components.grid_canvas import Grid3DCanvas

In [12]:canvas = Grid3DCanvas(figsize=(30, 20), dpi=100)
image.png

扩展supercell

In [13]:expanded_supercell = supercell.expand(4, 4, 4)
#绘制
In [14]:canvas.add_supercell(expanded_supercell)
In [15]:
canvas.draw()
canvas.figure
Out[15]:
image.png
上一篇下一篇

猜你喜欢

热点阅读