Plot 使用两个轴设置匹配的记号数

Plot 使用两个轴设置匹配的记号数,plot,gnuplot,yaxis,Plot,Gnuplot,Yaxis,我想知道如何使用gnuplot为独立y和y2轴设置相同数量的ytics,仍然使用自动缩放,以便网格对齐 现在,正如您在下面看到的,对于y轴,有6记号,对于y2轴,有7记号,图表的可读性很差 据我所知,Gnuplot只允许指定定义tic的增量,而不是它们的计数。一个稍微脏一点的解决方法是首先将绘图生成一个“假”终端,记住每个轴上检测到的自动缩放范围,计算所需的TIC间距,最后使用这些设置生成图像 N = 6 set term unknown set ytics set y2tics #sett

我想知道如何使用gnuplot为独立
y
y2
轴设置相同数量的
ytics
,仍然使用自动缩放,以便网格对齐

现在,正如您在下面看到的,对于
y
轴,有
6
记号,对于
y2
轴,有
7
记号,图表的可读性很差


据我所知,Gnuplot只允许指定定义tic的增量,而不是它们的计数。一个稍微脏一点的解决方法是首先将绘图生成一个“假”终端,记住每个轴上检测到的自动缩放范围,计算所需的TIC间距,最后使用这些设置生成图像

N = 6

set term unknown

set ytics
set y2tics #setting y2tics affects autoscale
set ylabel 'MSE'
set y2label 'CE'
set grid

set format y "%.2f"
set format y2 "%.1f"

plot \
    'mse.dat' u 1:2 axis x1y1 w l t 'MSE', \
    'ce.dat' u 1:2 axis x1y2 w l t 'CE'

min_y1 = GPVAL_Y_MIN
max_y1 = GPVAL_Y_MAX

min_y2 = GPVAL_Y2_MIN
max_y2 = GPVAL_Y2_MAX

dy1 = (max_y1 - min_y1) / N
dy2 = (max_y2 - min_y2) / N

set ytics min_y1, dy1
set y2tics min_y2, dy2

set yr [min_y1:max_y1]
set y2r [min_y2:max_y2]

set term png enhanced
set output "test.png"

replot 
然后(使用数据的数字化近似值)生成:

不是完整答案,但您至少可以从y2轴上删除y轴:
set ytics nomisrror
。这并不能消除网格未对齐的问题。还有其他解决方案,但它们涉及事先知道并指定y和y2范围。你能接受吗?我正在使用gnuplot对我的系统进行实时粗略绘图/健康监控。我想我会备份到Matplotlib进行更精确的数据分析。更准确地说,不,我不知道我在这个阶段的输入范围。我接受这个答案仅仅是基于我的无代码图表复制的准确性。此外,它正确地回答了我的问题。尽管如此,我认为如果我需要在gnuplot中使用2、3行以上的代码,我最好使用Matplotlib,在那里我可以进行适当的数据分析,依赖冗长的文档,并利用Numpy和Python生态系统。我曾经认为gnuplot是一个图形化的
awk
,一个用于单行线的日常工具。也可以使用stats来避免假绘图。