【问题标题】:gnuplot add scale and offset to xtics?gnuplot 向 xtics 添加比例和偏移量?
【发布时间】:2013-07-18 15:07:25
【问题描述】:

我正在 gnuplot 中绘制一个 600px*600px 的图像,我想让 xtics 对应于与像素系统不同的坐标系。实际上,xtics 为 0、100、200、...、500、600。我想让它们位于同一个地方,但具有不同的值。有没有办法让抽动得到统一修改,比如 xtic[i] = (xtic[i]*c1) + c2?

编辑:这是我的代码。另外,我应该澄清一下,我要做的是让 xtics 和 ytics 专门对应于经度和纬度。因此,例如,我想添加一个转换,例如 xtic=0 -> xtic=$minlat 和 xtic=$maxx -> xtic=$maxlat。

#!/bin/sh                                                                               

inputfilename=$1
outputfilename=$2
minlat=$3
maxlat=$4
minlon=$5
maxlon=$6
imagexsize=$7
imageysize=$8
maxx=$(($imagexsize - 1))
maxy=$(($imageysize - 1))

windowxsize=$(($imagexsize+5+5))
windowysize=$(($imageysize+5+5))

imagename=${inputfilename%.*}

gnuplot <<EOF                                                                           

set terminal png size $windowxsize,$windowysize                                         
unset key                                                                               
unset colorbox                                                                          
set output "$outputfilename"                                                            
set lmargin 5                                                                           
set bmargin 5                                                                           
set rmargin 5                                                                           
set tmargin 5                                                                           
set size square                                                                         
set xrange [0:${maxx}]                                                                  
set yrange [0:${maxy}]                                                                  
set palette grey                                                                        
set label "$imagename" at screen 0.3,0.95                  
plot "$inputfilename" binary array=${imagexsize}x${imageysize} format='%ushort' with image                                                                                     

EOF 

【问题讨论】:

  • 你能展示你正在使用的脚本吗?通常你可以重新缩放你传递给 gnuplot 的 x 值。
  • @mgilson 我添加了源代码并进行了澄清。我不想更改 x 值,因为它是图像。我想将 xtics 更改为对应于经度而不是像素索引。这有意义吗?
  • “我不想更改 x 值,因为它是图像”。我不明白那个说法。似乎您可以通过将origindxdy 关键字组合成二进制来完成您想要的。例如plot "file" binary array=(100,100) origin=(minx,miny) dx=(maxx-minx)/100 ...
  • 我担心我的问题没有很清楚地表达出来,让我用一个例子来解释一下。所以在这种情况下,minlon=-120.54 和 maxlon=-119.94,而我要绘制的图像的索引是 minx=0 和 maxx=599。现在,默认行为使得 xtics 为 0,100,200,...,600。我希望 xtics 改为 -120.54,-120.34,...,-119.94。事实上,如果我按照你的建议,我会得到一张空白图像,因为它正在寻找索引为 -120 的像素(至少,这就是我认为我得到一张空白图像的原因)。

标签: image gnuplot


【解决方案1】:

您可以通过在“绘图”命令中添加“使用”参数来轻松完成此操作。

这是一个添加偏移量为 10 且比例为 0.5 的示例:

plot '-' using (($1+10)/2):(($2+10)/2) with linespoints
1 2
3 4
5 6
e

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多