2017-03-01 64 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