首页 > 解决方案 > 在 gnuplot 中控制 x2tics 的频率

问题描述

我正在尝试绘制一个类似于下面给出的示例的数据文件,尽管要大得多。

1.0   12.0   0.03
2.0    14   0.586
10.0    16   0.798
50.0     18  1.023
250.0   28.9   1.124
1000.0   30.2   1.456

我想用 3 绘制第 1 列,而第 2 列将是我的上轴刻度。在此处输入图像描述下面给出的代码:

reset
set logscale x
set logscale y
set xtics nomirror
set xtics (1 ,100, 1000)

set x2tics (1, 100, 1000)#(x2tics is not changing)

set autoscale xfix
set autoscale x2fix
set xlabel 'x'
set ylabel 'y'
set x2label 'm'

plot 'data_test.txt' using 1:3:x2tic(2) with linespoints ps 2 lw 2 title 'y wrt x'   

最初的滴答声都是重叠的,我想减少滴答声。但是,更改 x2tics 并不能解决问题。请帮忙。

标签: gnuplot

解决方案


您缺少一个set logscale x2.

完整代码:

reset

set logscale x
set logscale y
set logscale x2

set xtics nomirror
set xtics (1 ,100, 1000)


# The next line would plot a confusing 100 between 18 and 28.9,
# so I commented it out
# set x2tics (1, 100, 1000)#(x2tics is not changing)

# But we have to enable x2tics
set x2tics

set autoscale xfix
set autoscale x2fix
set xlabel 'x'
set ylabel 'y'
set x2label 'm'

plot 'data_test.txt' using 1:3:x2tic(2) with linespoints ps 2 lw 2 title 'y wrt x'

结果:

没有重叠的 x2tics


更新

为了减少 x2tics 的数量,我会尝试两个图:第一个绘制数据点,第二个只绘制 x2tics:

plot 'data_test.txt' using 1:3 with linespoints ps 2 lw 2 title 'y wrt x', \
     'data_test.txt' using 1:(NaN):x2tic(2) every 2 notitle

在这里,NaN“隐藏”数据点,并every 2跳过每 2 行。


推荐阅读