如何使用Gnuplot基于XRD极图矩阵数据绘制极坐标二维热力图
基于Gnuplot的XRD极坐标热力图(极图)绘制方案
方案1:直接使用80×720矩阵数据绘制
直接适配你现有的矩阵数据格式,核心是将矩阵的行列索引映射到极坐标的方位角、径向参数:
# 初始化极坐标基础配置 set polar set angles degrees # 明确使用角度单位,匹配你的测量参数定义 set size square # 强制画布为正方形,避免极坐标被拉伸为椭圆 set grid polar 30 # 极坐标方位角网格每30度显示一条,可按需调整 # 配置径向轴(对应倾斜角psi)参数 set rrange [35:75] # 径向范围匹配psi的35°~75°测量范围 set rtics 10 # 径向刻度每10°显示一条,可按需调整 # 配置方位角(对应旋转角phi)参数 set trange [0:360] # 方位角范围匹配phi的0°~360°测量范围 set ttics 30 # 方位角刻度每30°显示一条,可按需调整 # 配置pm3d热力图参数 set pm3d interpolate 2,2 ftriangles # 开启插值适配极坐标三角剖分,让色块更平滑 set pm3d map unset surface set view map # 核心绘制命令:行列索引映射为实际角度 splot "你的矩阵数据文件名" matrix u ($2*0.5):($1*0.5 + 35):3 w pm3d notitle
参数说明:$2为矩阵列索引,乘以0.5得到0°359.5°的phi值;`$1`为矩阵行索引,乘以0.5加35得到35°74.5°的psi值,第三列为强度值做颜色映射。
方案2:使用80个独立psi文件绘制
如果你更倾向用单psi角度的独立文件,可通过循环批量加载数据绘制:
# 前半部分极坐标、pm3d配置和方案1完全一致 set polar set angles degrees set size square set rrange [35:75] set trange [0:360] set pm3d interpolate 2,2 ftriangles set pm3d map unset surface set view map # 循环读取80个psi文件,psi从35°到74.5°步长0.5 splot for [i=0:79] sprintf("你的psi文件前缀_%d.dat", i) u 1:(35 + i*0.5):2 w pm3d notitle
参数说明:假设单个psi文件第一列为phi角度,第二列为强度值,你可以根据自己的文件名命名规则调整sprintf的格式字符串。
常见效果调整建议
- 色块出现断层时,可调高
set pm3d interpolate后的插值参数,或者添加set dgrid3d 720,80强制网格化 - 颜色映射不符合预期时,用
set cbrange [最小强度:最大强度]锁定颜色条范围 - 需要导出高清图片时,在脚本开头添加
set terminal pngcairo size 1000,1000 enhanced font "Arial,10"和set output "xrd极图.png"即可
内容的提问来源于stack exchange,提问作者oFlo
相关产品推荐
相关产品推荐

