如何使用gnuplot基于x、y两列数据绘制符合预期的一维热图?
解决方案
你当前的脚本仅渲染了离散数据点对应的色块,未对相邻点做颜色过渡插值,调整脚本如下即可实现连续渐变的一维热图:
修改后完整脚本
# 可根据需求切换终端,比如用qt做交互式预览就改成 set terminal qt set terminal pngcairo size 800, 200 enhanced font 'Arial,10' set output '1d_heatmap.png' set view map # 开启pm3d填充,x方向做200倍插值实现平滑过渡 set pm3d interpolate 200, 2 set size ratio 0.2 unset ytics unset key # 可选自定义配色,内置支持viridis、jet、plasma等色板 set palette viridis splot 'test.dat' using 1:(1):2 with pm3d
关键调整说明
- 新增
set pm3d interpolate 200, 2:对水平方向做高倍率插值,自动填充离散x点之间的过渡颜色,实现连续渐变效果 - 绘图命令追加
with pm3d:启用pm3d颜色填充模式,替代默认的离散点渲染 - 若你的x列数据为非等间隔分布,可额外添加
set dgrid3d 200, 2,先将数据重采样为均匀网格再渲染,效果更顺滑。
内容的提问来源于stack exchange,提问作者ShanJ
相关产品推荐
相关产品推荐

