用gnuplot替换2D图中的log10(0)值

时间:2018-01-10 07:14:13

标签: gnuplot

我正在绘制1D晶格的能量分布图作为2D图。数据是从快照中收集的,这些快照在给定时间保存晶格的状态。该配置文件高度本地化,在活动区域​​外有许多零。这会给出以下个人资料 [fig]

我想用最小的cbrange[..]填充空格(由log10(0)生成)以用最冷的颜色填充该空间。

有人可以帮忙吗?

以下是我正在使用的代码

set terminal pngcairo

n=1000  # Number of snapshots
mincb = -16; maxcb = -2
load 'color_dnls.pal'
set cbrange[mincb:maxcb]
unset key
set style fill solid
set ylabel "Snapshot/Time"
set xrange[0:2021]
set yrange[0:8]

snapshot(i) = sprintf("snapshot_%04d.dat", i)
set output 'norm_distr.png'

plot for [i=1:n] './snapshots/'. snapshot(n+1-i) using 1:(log10($2)):(log10($3)) with boxes linecolor palette,\
  'RV_0001.dat' using 10:(log10($1)) lc 'black' lw 3 lt 2 with lines  

1 个答案:

答案 0 :(得分:1)

using部分添加一个简单的检查:

plot for [i=1:n] './snapshots/'. snapshot(n+1-i) using 1:(log10($2)):($3 > 0 ? log10($3) : mincb) with boxes linecolor palette