Jupyter 可以作为交互式Python写作的平台,以前叫IPython,与Matplotlib结合使用可以作为Python中的科学计算模块,进行交互式的编程以及图像处理,目前在ab initio方面用的还不是很多主要是洛桑联邦理工的大牛Nicola Marzari的组在用(AiiDA)。
1、安装:很简单,Anaconda3+chrome浏览器,自行安装,然后终端输入:conda update anaconda以及conda install jupyter,就好了
2、启动,终端输入:jupyter lab
这里推荐用lab而不是notebook,新添加的具有IDE功能,很强大。
然后就是选择Python3新建一个note了
3、In[]这一行输代码,shit+enter自动编译结果,注意需要import命令导入Numpy以及matplotlib,下图是简单示例:
4、其他示例可以查看matplotlib官网,能够绘制不少高颜值的图像https://matplotlib.org/。这里提一下如何根据已有数据来绘图,因为我们通常的结果都是大量数据点。
以VASP分子动力学结果为例,绘制整个过程中总能随时间变化的曲线。
首先准备结果数据,从log或者OUTCAR中提取,如下:(第一列是时间,单位fs,第二列是总能,单位eV,中间,隔开,文件名MD-300.dat,总共5000行其他行略)
在同一文件夹下创建.ipynb文件并在Jupyter Lab中打开,输入:
这里有个子图的概念,其实就是拼接多个图形在一张图里面,简单起见都采用同一组数据,shift+enter结果:
最后自己根据需要调节子图个数,颜色,坐标范围等,主要用的控制参数都可以查阅官网。
其他像能带、态密度、声子谱这些同样地方法都可以绘制。同时可以看一下官网里面的例子(https://matplotlib.org/gallery/index.html),颜值都非常的高(比如Machine Learning中常用的热图,这个画起来非常简单也很漂亮)。
最后,用这个画图,不会有一股浓浓的Origin风格。
Ref:
[1] http://jupyter.org/
[2] http://www.scipy-lectures.org/intro/index.html (Python做科学计算的一个lecture,强烈推荐)
[3] https://matplotlib.org/contents.html (文档)
领取专属 10元无门槛券
私享最新 技术干货