美文网首页
绘制晶格材料三维晶格图

绘制晶格材料三维晶格图

作者: 渔家傲_俞 | 来源:发表于2018-12-23 16:09 被阅读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

    相关文章

      网友评论

          本文标题:绘制晶格材料三维晶格图

          本文链接:https://www.haomeiwen.com/subject/hpsnkqtx.html