Gnuplot.jl绘制非均匀网格热图 如何替换坐标轴索引为实际值
Gnuplot.jl 非均匀网格热图自定义坐标轴方案
直接传入矩阵调用w image的写法默认以矩阵的行列索引作为x/y轴坐标,要替换为自定义非均匀坐标向量不需要生成外部数据文件,直接在Julia内构造匹配格式的绘图数据即可。
操作步骤
- 首先准备好x轴对应的坐标向量,命名为
x_vec,长度必须和P_save的列数(731)一致,和长度150的Depth向量(对应y轴)分别对应两个轴的非均匀物理坐标。 - 利用Julia广播生成和
P_save维度完全一致的二维坐标网格:
using Gnuplot # 生成坐标网格,转置保证维度和P_save(150×731)对齐 x_grid = [x for x in x_vec, d in Depth]' y_grid = [d for x in x_vec, d in Depth]'
- 调整绘图语句,非均匀网格不要使用仅适配均匀等距网格的
w image模式,改用pm3d模式绘制,保留对数色标设置:
# 基础绘图 @gp x_grid y_grid P_save "w pm3d notitle" "set logscale cb" "set view map" :- # 可选:添加坐标轴标签 @gp :- "set xlabel 'X轴物理量名称'" "set ylabel 'Depth'" # 可选:如果需要深度值从上到下递增,添加y轴反转设置 @gp :- "set yreverse" # 显示图像 @gp
注意事项
若对数色标绘制时报错,一般是
P_save中存在0值或负值,提前将无效值替换为合理的极小正值即可,例如P_save[P_save .<= 0] .= 1e-10。
传入的x_grid、y_grid、P_save三个矩阵必须维度完全一致,否则会触发绘图错误。
内容的提问来源于stack exchange,提问作者Si Chen
相关产品推荐
相关产品推荐

