2014-03-13 81 views
0

我有一個看起來不漂亮的多重陰謀,應該將它寫入物理論文。儘管我可以看到很多問題,但最令人沮喪的是Gnuplot似乎完全違背了我在一些子圖上設置的ytics命令。另外,第一個情節的我的軸標籤結束於第二個情節。我如何解決Gnuplot有自己的想法的這些問題,拒絕按照我所說的去做?如果放在plot命令之前Gnuplot中的軸標記命令不起作用?

reset 
set terminal postscript eps enhanced color size 10,5 
set output 'C:\\Users\\cole1\\Desktop\\multiplot3.eps' 
set multiplot 
set xtics font "Times-Roman, 20" 
set ytics font "Times-Roman, 18" 

set size .5,.25 
set origin 0,.75 
set label "(a)" at screen .06,.95 
plot 'C:\\Users\\cole1\\Documents\\MATLAB\\logefficiency1.txt' using 1:2 lc rgbcolor "#FF0000" pt 5 with lp notitle 
set ytics -3,1,2 
set xlabel "Log_{10} current density factor" 
set ylabel "Log_{10} percent efficiency" 
unset label 1 


set size .5,.25 
set origin .5,.75 
set label "(b)" at screen .56,.95 
plot 'C:\\Users\\cole1\\Documents\\MATLAB\\spectralinfo4009.txt' using 1:2 lc rgbcolor "#0000FF" with lines notitle 
set ytics 0,0.5,1 
set xlabel "Frequency(THz)" 
set ylabel "Intensity/ freq. interval (arb.)" 
unset label 1 


set size .5,.25 
set origin 0,.5 
set label "(c)" at screen .06,.7 
plot 'C:\\Users\\cole1\\Documents\\MATLAB\\spectralinfo4018.txt' using 1:2 lc rgbcolor "#0000FF" with lines notitle 
set ytics 0,1,4 
set xlabel "Frequency(THz)" 
set ylabel "Intensity/ freq. interval (arb.)" 
unset label 1 


set size .5,.25 
set origin .5,.5 
set label "(d)" at screen .56,.7 
plot 'C:\\Users\\cole1\\Documents\\MATLAB\\spectralinfo4027.txt' using 1:2 lc rgbcolor "#0000FF" with lines notitle 
set ytics 0,15,60 
set xlabel "Frequency(THz)" 
set ylabel "Intensity/ freq. interval (arb.)" 
unset label 1 


set size .5,.25 
set origin 0,.25 
set label "(e)" at screen .06,.45 
plot 'C:\\Users\\cole1\\Documents\\MATLAB\\spectralinfo4036.txt' using 1:2 lc rgbcolor "#0000FF" with lines notitle 
set ytics 0,15,60 
set xlabel "Frequency(THz)" 
set ylabel "Intensity/ freq. interval (arb.)" 
unset label 1 


set size .5,.25 
set origin .5,.25 
set label "(f)" at screen .56,.45 
plot 'C:\\Users\\cole1\\Documents\\MATLAB\\spectralinfo4045.txt' using 1:2 lc rgbcolor "#0000FF" with lines notitle 
set ytics 0,15,60 
set xlabel "Frequency(THz)" 
set ylabel "Intensity/ freq. interval (arb.)" 
unset label 1 


set size .5,.25 
set origin 0,0 
set label "(g)" at screen .06,.2 
plot 'C:\\Users\\cole1\\Documents\\MATLAB\\spectralinfo4054.txt' using 1:2 lc rgbcolor "#0000FF" with lines notitle 
set ytics 0,30,120 
set xlabel "Frequency(THz)" 
set ylabel "Intensity/ freq. interval (arb.)" 
unset label 1 


set size .5,.25 
set origin .5,0 
set label "(h)" at screen .56,.2 
plot 'C:\\Users\\cole1\\Documents\\MATLAB\\spectralinfo4063.txt' using 1:2 lc rgbcolor "#0000FF" with lines notitle 
set ytics 0,300,1200 
set xlabel "Frequency(THz)" 
set ylabel "Intensity/ freq. interval (arb.)" 
unset label 1 


unset xtics 
unset ytics 
unset multiplot 
+3

我們怎麼看到你有很多問題?您不會顯示任何帶有當前輸出的圖像...一個子圖的所有設置必須在實際的「繪圖」命令之前完成。這可能是主要問題。查看語法'set multiplot layout 4,2'來簡化你的實際腳本 – Christoph

+0

爲了讓任何人能夠幫助你解決這個問題,你需要提供一些測試數據,或者至少一張圖像顯示出什麼是錯誤的。 –

+0

事情發生後,我有事情的情節命令是整個問題,現在已經修復。謝謝Christoph! – user3128107

回答

0

ytic設置才能正常工作。這適用於所有設置。它必須出現在圖中,所有的設置都必須在各自的plot命令之前完成:

set ytics 1 
plot x 

這裏是你的腳本的改進版本:

reset 

datadir = 'C:\\Users\\cole1\\Documents\\MATLAB\\' 

set terminal postscript eps enhanced color size 10,5 
set output 'multiplot3.eps' 

set xtics font "Times-Roman, 20" 
set ytics font "Times-Roman, 18" 

set style line 1 lc rgb "red" pt 5 
set style line 2 lc rgb "blue" 

set style data lines 
unset key 

set multiplot layout 4,2 

set label 1 "(a)" at graph 0.01,0.9 
set ytics 1 
set xlabel "Log_{10} current density factor" 
set ylabel "Log_{10} percent efficiency" 
plot datadir.'logefficiency1.txt' ls 1 with lp 

set label 1 "(b)" 
set ytics 0.5 
set xlabel "Frequency (THz)" 
set ylabel "Intensity/freq. interval (arb.)" 
plot datadir.'spectralinfo4009.txt' ls 2 

set label 1 "(c)" 
set ytics 1 
plot datadir.'spectralinfo4018.txt' ls 2 

set label 1 "(d)" 
set ytics 15 
plot datadir.'spectralinfo4027.txt' ls 2 

set label 1 "(e)" 
plot datadir.'spectralinfo4036.txt' ls 2 

set label 1 "(f)" 
plot datadir.'spectralinfo4045.txt' ls 2 

set label 1 "(g)" 
set ytics 30 
plot datadir.'spectralinfo4054.txt' ls 2 

set label 1 "(h)" 
set ytics 300 
plot datadir.'spectralinfo4063.txt' ls 2 

unset multiplot 

的要點是:

  1. 使用set multiplot layout 4,2自動更改大小和原點。
  2. 如果它們沒有更改,則必須只設置一次xlabelylabel
  3. 同樣,只有在設置更改時,您才必須使用set ytics
  4. 通常情況下,如果啓用了自動縮放功能,則不得指定ytics的開始和結束,而只能指定增量。
  5. 對於子圖標籤使用相對於實際繪圖的座標(graph 0.01,0.9)。並始終使用相同的標籤ID(1)。然後對於第二個和所有下面的圖,你必須只改變文本,使用舊的座標。然後,您可以在代碼中的一個位置對標籤位置進行微調。
  6. 使用set style data lines
  7. 使用線型
  8. 使用unset key隱藏的傳說。