2015-03-31 118 views
0

我需要绘制一个代表持续时间函数的图。声音需要通过强度(功率)和dB进行缩放。gnuplot一个带有两个坐标轴的图(dB和强度)

这里是我到目前为止已经试过:

gnuplot <<EOF 

# first part duration this is easy 
set terminal png size 1024,768 enhanced font "Helvetica,20" 
set output 'output.png' 
set yrange [0:60]; 
set ylabel "duration"; 
set ytics 5 nomirror textcolor lt 1; 

# second part intensity and dB 
set xrange [0:100]; 
set xlabel "intensity"; 
set xtics 5 nomirror textcolor lt 1; 
set x2range [0:10]; 
set x2label "dB"; 
set x2tics 5 nomirror textcolor lt 1; 
plot \ 
"data.dat" using 2:1 axes x1y1 title 'Graph' with points pt 7 ps 4,\ 
"data.dat" using 2:1 linetype 1 axes x2y1 title ''; 

麻烦的是,如果两个起始和终止正确,价值观为dB的色散(日志(强度/ intensity_ref))是不与强度相同,完全成比例。

如何指定一个斧头的公式?不仅对于声音图形,是否可以指定围绕一个斧头散布的公式? (我也想如果我可以有两个x轴,比如x和x^2色散)。

非常感谢!

回答

1

要绘制线性刻度强度上一轴以dB为单位的另一个轴必须在各列应用适当的缩放:

plot 'data.dat' using 2:1, 'data.dat' using (log10(column(2))):1 axes x2y1 
+0

这正是我需要做的,不过,从bash脚本中,$ 2不被识别为列,而是返回:'(log10(/ intensity_ref)):1'。 当我直接用gnuplot执行脚本时,它不会返回任何东西(也不会出现任何情况)。感谢无论如何回复 – philippe 2015-03-31 22:25:59

+0

Ups,错过了。使用'column(2)'。 – Christoph 2015-04-01 05:02:26

+0

谢谢,这解决了我的问题:) – philippe 2015-04-01 08:33:05