我可以通过
将x轴放在gnu图的图形顶部 set x2label "label"
和
set x2tics
我有一列data1
值的数据,我想在下x轴上绘制这些值乘以2在上x轴上的值,对数据data2
进行绘制。 data1
和data2
都在同一个数据文件中。这是一些示例数据
data2 data1
20 1.2e-2
40 3.0e-3
60 1.4e-3
... ...
我想在上轴上绘制2 * data1,在下轴上绘制data2。最好,我只想为每个data2值在2 * data1轴上打一个勾号。在y轴上,我将针对data2绘制其他一些数量,但我想问的是如何绘制x2与x1的关系。
谢谢!
答案 0 :(得分:0)
仍在猜测您到底想要什么。也许我们可以通过这个例子更快地找到答案。
reset session
$Data <<EOD
# x2 x1 y
20 1.2e-2 1
40 3.0e-3 2
60 1.4e-3 3
EOD
set key top center
set xtics nomirror
set x2tics nomirror
plot $Data u ($1*2):3 axes x2y1 w lp pt 7 title "y-data vs. x2-axis", \
'' u 2:3 axes x1y1 w lp pt 7 title "y-data vs. x1-axis"
结果:
编辑:
您可以通过功能链接x1
和x2
轴(在下面的示例中,在nm和eV之间进行转换),然后根据需要设置x2tics
。
x1
x2tics 0.2
的“偶数”值x2tics
。示例:
### linked axes x1, x2
reset session
set xlabel "Wavelength / nm"
set xtics nomirror
set x2label "Energy / eV"
set x2tics nomirror
set link x via 1239.8/x inverse 1239.8/x
set ylabel "Intensity / a.u."
set ytics 0.2
set samples 400
Spectrum(x) = exp(-(x-500)**2/(400))
set xrange[380:780]
set multiplot layout 3,1
set format x2 "%.2f"
plot Spectrum(x) w l title "Spectrum"
set format x2 "%.1f"
set x2tics 0.2
replot
set x2tics ()
myTics = "1.7 1.8 1.9 2.0 2.1 2.3 2.5 2.7 3.0"
do for [i=1:words(myTics)] { set x2tics add (word(myTics,i) real(word(myTics,i))) }
replot
unset multiplot
### end of code
结果: