ATAT相图:原生绘图与数据导出
使用ocplotpd与gnuplot画出相图,导出单文件绘图输入并保留数值数据。
阅读本篇目录
完成相平衡计算后,继续在同一个ATAT-OpenCalphad目录操作。下载完整实例包。
1 用原生gnuplot输入画图#
bash plot.sh
bash inspect.sh
plot.sh读取ocplotpd原生生成的ocplotpd.gnu,设置pngcairo终端,移除交互等待,分别输出2200×1400 PNG。数据点和系线均来自刚刚完成的平衡计算,不重新计算热力学。
ls -lh new-work/figures/*.png
主要结果为phase-map-native.png和fixed-800K-native.png。原生GNU输入的核心为:
set terminal pngcairo size 2200,1400
set output 'phase-map-native.png'
set xlabel 'Au'
set ylabel 'T (K)'
plot 'tielines.dat' using 6:4 with lines, 'phase_FCC_A1.dat' using 6:4 with lines
这是二元模型,横轴是Au标签组元的摩尔分数,纵轴是温度。相界输出按ATAT自己的距离规则连接;采样较稀时局部有断开,增加采样可改善覆盖,不应为了“好看”手工补成不存在的数据。

2 不重算平衡,只更换绘图形式#
bash replot.sh
这个命令在输出副本上调用ocplotpd -noc,分别演示-nt和-1f。-noc复用已有数据,-nt隐藏系线,-1f把数据内嵌到一个gnuplot脚本中。输出在new-work/replot/without-ties与new-work/replot/inline,各有一张PNG。
原生-1f会在嵌入数据后移除该目录中的独立.dat文件。因此包内脚本先复制绘图数据再执行,原始计算目录的数据继续保留。自行调用原生命令时也应先复制工作目录。
ls -lh new-work/replot/inline/inline.gnu
ls -lh new-work/phase-map/*.dat
需要把图片重新画出来时,PNG终端与输出文件已由脚本设置;如果自己直接执行原生gnuplot ocplotpd.gnu,默认可能等待交互窗口,远程命令行环境建议使用上面的无界面绘图入口。
3 用数据表画带说明的科学图#
/public/toolkit/miniconda3/envs/ase-3.29.0/bin/python code/plot_analysis.py
命令使用集群已有的NumPy与Matplotlib,读取new-work/analysis/equilibria.json,生成温度—组分图、800 K自由能与杠杆定则图,以及流程/数值检查图,同时保存PNG与SVG。

橙点来自原生共存相组成,蓝线来自正则溶液模型的化学势相等条件;灰色叉号为原生单相目标。紫色星号是模型解析临界点,不是本次111个目标中额外算出的临界点。图中的组元标签仍是教学模型,不能当作真实Cu–Au数据库预测。
4 最后保留哪些文件#
inputs/regular.tdb是输入;new-work/*/alltmp.oco是原生详细结果;.dat与.gnu用于ATAT原生绘图;analysis/equilibria.csv适合表格软件,JSON保留各相组成与物质的量;figures保存图片。后续调整采样或模型时,保留这批结果并使用新目录,便于比较。
本例覆盖二元温度—组分图、定温截面与缓存绘图,不把它当作三元/多元、VTK或一般多相数据库流程。相关接口与选项说明见ATAT手册。