String 在gnuplot中动态生成x,y tics
我在gnuplot中设置x和ytics时遇到问题。 我想创建热图,要做到这一点,我需要为其中的每个“块”创建特定的tic。我想用循环创建它们,这样使用它们就容易多了,因为例如,我需要制作60个XTIC,所以我必须写下: 设置xtics(“-0.3”0、-0.29”1、“0.3”60) 它让人筋疲力尽,令人沮丧,所以我想制作一个这样的脚本:String 在gnuplot中动态生成x,y tics,string,loops,gnuplot,axis,String,Loops,Gnuplot,Axis,我在gnuplot中设置x和ytics时遇到问题。 我想创建热图,要做到这一点,我需要为其中的每个“块”创建特定的tic。我想用循环创建它们,这样使用它们就容易多了,因为例如,我需要制作60个XTIC,所以我必须写下: 设置xtics(“-0.3”0、-0.29”1、“0.3”60) 它让人筋疲力尽,令人沮丧,所以我想制作一个这样的脚本: xnumtics = 60 ynumtics = 90 set macros xticstring = '(' do for [i=0:xnumtics]
xnumtics = 60
ynumtics = 90
set macros
xticstring = '('
do for [i=0:xnumtics] {
xticstring = xticstring.'"'.(-0.3 + i*0.01).'" '.i.', '
}
xticstring = xticstring.'"'.0.3.'" '.xnumtics.')'
set xtics @xticstring
yticstring = '('
do for [j=0:ynumtics] {
yticstring = yticstring.'"'.(0 - i*0.01).'" '.j.', '
}
yticstring = yticstring.'"'.0.9.'"'.ynumtics.' '
set ytics @yticstring
不幸的是,我得到了一个错误:第21行:内部错误:字符串运算符应用于非字符串类型
第21行表示:xticstring=xticstring.“.”(-0.3+i*0.01)。“.i..”
我的想法来自:
我在ubuntu 14.04 LTS上使用gnuplot 4.6 ptchlvl 4
对不起,如果太琐碎了,我想不出是什么问题
谢谢大家! 字符串串联运算符
只能自动转换整数,不能转换双倍数。您需要使用sprintf
或gprintf
将(-0.3+i*0.01)
转换为字符串
但是,设置TIC的较短方法是使用set for…
iterations:
xnumtics = 60
ynumtics = 90
set xtics () # clear all tics
set for [i=0:xnumtics] xtics add (gprintf("%g", -0.3 + i * 0.01) i)
set ytics ()
set for [i=0:ynumtics] ytics add (gprintf("%g", -i * 0.01) i)
您真的需要手动添加tics吗?通常将数据文件中的值映射为使用gnuplot的常用数值轴:
plot 'file.dat' using (-0.3 + $1 * 0.01):($2 * -0.01)