在使用origin作图的过程中,发现其配色不是很丰富,而且一些高维图和向量图的做法并不是特别的友好,所以通过一番探索终于在Mathematica上实现了我自己平时科研中需要用到的一些作图,最主要的高维度作图展示,以及一些等能面的绘制。由于Mathematica同时也可以用来进行计算,而且对数据的操作也是非常方便,所以干脆将所有形式的图都利用Mathematica来绘制,后面有精力准备写一个自己的包,日常调用绘图即可,同时自动设置号图像大小、坐标轴样式以及图例等等。
体积图(三维空间中的密度分布)
我所理解的体积图,就是在三维空间中的一个点(x,y,z)对应的密度大小是f,这也就是下面再构造数据的过程中,数据结构应该是(x,y,z,f)
首先是3维空间中密度分布的一个切面图,只在一些确定的切面上展示,这个切面是可以自己指定的,我这里只是采用了默认选项
接下来就是3维空间中的密度分布了
这里说明一下,图中的图例,字体,以及图例位置等一系列内容均是可以设置的,这些都可以在Mathematica的帮助文档里面找到,我这里也进行了一些基本的调整,大体上是满足我的需求的,如果你有别的需求,可以擦好看帮助文档进行修改,或者联系我,我们可以一起讨论解决 上面这些都是利用Mathematica中算出来的数据做的图,平时可能需要结合其它程序计算数据,我这里顺便展示一下利用Fortran计算得到的数据如何做出上面的图形
这里需要注意的是,在导入数据时,数据文件的路径一定要正确,Mathematica默认的工作路径不是当前路径,而是你在安装软件时,会在windows系统的文档下产生一个文件夹,不过为了简便可以通过SetDirectory[NotebookDirectory[]];
,将你Mathematica的笔记本当前所在路径设置为工作路径,这时候只要保证数据和笔记本文件在相同的路径下面即可。上图所用到的数据格式为(x,y,z,f),即如下图所示
如果你的数据格式和我上图所示一致,那么上面代码复制粘贴即可使用,记得修改文件名,若有疑问同样发email联系我,一起讨论解决。
二维密度图
bubble密度图
首先示范利用气泡大小和颜色来标示2维平面上一点数值的大小,这个效果利用Mathematica始终没有做到我想要的效果,因为边界上留有很大的空隙,作图所需的数据在这里TIldos
上图所需的数据结构为(x,y,z),具体的可以参考上面体积图的数据结构,只不过是少了一列而已
颜色密度图
Mathematica有很多种的配色方案,而且还可以通过选择周期表中的元素来决定颜色,可以参考这里,下面这张图展示了一些基本的配色,这些配色我在一些很好的文章中也经常看到,估计也是用Mathematica绘制的
开边界能带图(多曲线绘图)
说成开边界能带图,如果熟悉凝聚态肯定知道是什么图,但其实说白了就是在一张图上画很多条曲线,这张图的数据在这里KM-zigzag
后话
本来想直接贴Mathematica的代码,但总是会提示错误,是在没办法解决这个问题,只好把所有的代码都复制为Latex格式也不能很好的解决才解决,不过我还是将所有的代码都整合到了mma的笔记本之中,可以在这里看到here,相对应的数据也同样在这个文件夹中。
公众号
相关内容均会在公众号进行同步,若对该Blog感兴趣,欢迎关注微信公众号。