2017-03-01 63 views
1

匹配的刻度数,我想知道如何设置相同数量的ytics使用gnuplot的,依然采用自动缩放,使电网的充分顺应了既独立yy2轴。设置使用两个轴

现在,您可以在下面看到y轴的6刻度线和y27刻度线,并且图表看起来不易读。

y2 misalignment

+1

不是一个完整的答案,但你至少可以删除Y2轴与Y抽动:'设置ytics nomirror'。这并不能消除错位网格的问题。还有其他解决方案,但它们涉及到事先知道和指定什么是y和y2范围。你能忍受吗? – Miguel

+0

我使用的gnuplot * *我的系统的实时绘制粗糙/健康监测。我想我会备份到* Matplotlib *进行更精细的数据分析。更确切地说,不,我不知道在这个阶段我的输入范围。 – Atcold

回答

2

据我所知,gnuplot的让你只指定定义抽动不是他们的计数的增量。稍微脏解决方法是首先生成的情节变成“假”终端,记住每个轴上所检测的自动定范围,计算所需的控制点间距,最后生成与这些设置的图像。

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 

这就产生(使用你的数据的数字化近似值): enter image description here

+0

我接受只是精度在我的代码少图的再现的基础上,这个答案。而且它正确地解决了我的问题。不过,我认为,如果我需要使用超过2个,3线带*的gnuplot *,我与* Matplotlib *,在那里我可以做适当的数据分析更好,依靠冗长的文件,并利用* Numpy *和Python生态系统。我用* gnuplot *作为一个图形化的'awk',这是一个单行程的日常工具。 – Atcold

+0

也可以使用统计来避免虚假绘图。 – Miguel