python绘制笛卡尔心形曲线_基于 matplotlib 的抽象网格和能量曲线绘制程序

前言最近在写文章需要绘制一些一维的能量曲线(energy profile)和抽象的二维和三维的网格来表示晶体用来描述自己的算法,于是自己在之前的脚本的基础上进行了整改写成了只提供接口的Python库,基本思想就是封装了matplotlib中相关接口,方便快速搭建和定制自己的能量曲线和网格结构, 代码托管在GitHub上并上传至PyPI。对于研究晶体材料的同学如果想通过python来绘制简单的晶格图...
摘要由CSDN通过智能技术生成

前言

最近在写文章需要绘制一些一维的能量曲线(energy profile)和抽象的二维和三维的网格来表示晶体用来描述自己的算法,于是自己在之前的脚本的基础上进行了整改写成了只提供接口的Python库,基本思想就是封装了matplotlib中相关接口,方便快速搭建和定制自己的能量曲线和网格结构, 代码托管在GitHub上并上传至PyPI。对于研究晶体材料的同学如果想通过python来绘制简单的晶格图像可以参考一下。

正文

首先还是介绍一下这个程序的用途,目前主要是提供三个主要的模块来绘制三方面的内容:

1. 绘制抽象的二维网格结构

catplot提供了丰富的接口用来定制所需要的任何二维网格并进行周期性扩展,如下图是一个通过当个重复单元扩展出来的抽象(100)晶面的二维网格结构:

af9951e2ae54

2. 绘制抽象的三维网格结构

同理只不过这次是在三维画布中进行绘制并进行重复单元的周期性扩展,扩展的效果如下图:

af9951e2ae54

3. 通过插值算法实现绘制”顺滑”的energy profile

af9951e2ae54

实现过程基本是通过对matplotlib提供的绘图组件和接口进一步封装成可以快速搭建上面三个类型图像的组件。

采用二次插值结合样条插值方法绘制 energy profile

energy profile可以理解成在势能面(Potential Energy Surface)上沿着某个特定的方向(反应坐标方向)上能量的变化,

下面我就上一个简单的例子来画一条顺滑的energy profile, 更多具体的例子我都已经jupyter notebook的形式放在的github上(https://github.com/PytLab/catplot/tree/master/examples)

# 从catplot中导入绘制所需的组件: 画布 和 线

from catplot.ep_components.ep_canvas import EPCanvas

from cat

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值