gnu图中图形顶部的x轴

时间:2019-05-25 16:42:46

标签: gnuplot

我可以通过

将x轴放在gnu图的图形顶部

set x2label "label"set x2tics

我有一列data1值的数据,我想在下x轴上绘制这些值乘以2在上x轴上的值,对数据data2进行绘制。 data1data2都在同一个数据文件中。这是一些示例数据

data2     data1
20        1.2e-2
40        3.0e-3
60        1.4e-3
...          ...

我想在上轴上绘制2 * data1,在下轴上绘制data2。最好,我只想为每个data2值在2 * data1轴上打一个勾号。在y轴上,我将针对data2绘制其他一些数量,但我想问的是如何绘制x2与x1的关系。

谢谢!

1 个答案:

答案 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"

结果:

enter image description here

编辑:

您可以通过功能链接x1x2轴(在下面的示例中,在nm和eV之间进行转换),然后根据需要设置x2tics

  1. 图1:来自x1
  2. 的相应“奇数”值
  3. Graph2:给定间隔x2tics 0.2的“偶数”值
  4. Graph3:手动设置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

结果:

enter image description here