私はスペクトルをプロットする必要があります。さらに、いくつかの典型的なスペクトル線を示したいと思います。これは何千ものスペクトルのために自動的に生成されたスクリプトで行われるので、私は各スペクトルに表示する線を選択する可能性はなく、xrangeまたはyrangeの範囲で自動的に選択する必要があります。悲しいことに、この範囲は矢印のために働くようには見えないので、線がプロットの外側に表示されないようにするために、他の考えが必要です。私は条件付きで試してみましたが、これは変わっていません。ここ は、スクリプトからいくつか抜粋です:Gnuplot:矢印の範囲です。グラフの範囲の横に表示されないようにするにはどうすればよいですか?
set terminal png size 1000,1414
set output "FeLoBAL_plot_1.png"
set multiplot layout 4,1 title "FeLoBAL-Spektren des SDSS DR12"
unset xrange
unset yrange
stats '170.txt' using 2 name "Fluss" nooutput
stats '170.txt' using 1 name "A" nooutput
set xlabel 'Wellenlaenge [{\305}]'
set ylabel 'Fluss [erg/cm²/s/{\305}]'
set yrange [-0.5:(Fluss_mean*3)]
set xrange [(A_min/(1.699+1)):(A_max/(1.699+1))]
p '170.txt' u (($1)/(1.699+1)):2 with lines title "Nr.: 170; J000256.55+092025.5; z=1.699"
if(2799 > (A_min/(1.699+1)+20) && 2799 < (A_max/(1.699+1)-20)){set arrow from 2799, graph 0 to 2799, graph 1 nohead; set label "Mg II" at 2804, graph 0.8 }
if(1908 > (A_min/(1.699+1)+20) && 1908 < (A_max/(1.699+1)-20)){set arrow from 1908, graph 0 to 1908, graph 1 nohead; set label "C III" at 1913, graph 0.8 }
if(1549 > (A_min/(1.699+1)+20) && 1549 < (A_max/(1.699+1)-20)){set arrow from 1549, graph 0 to 1549, graph 1 nohead; set label "C IV" at 1554, graph 0.8 }
if(1240 > (A_min/(1.699+1)+20) && 1240 < (A_max/(1.699+1)-20)){set arrow from 1240, graph 0 to 1240, graph 1 nohead; set label "N V" at 1245, graph 0.8 }
if(6562 > (A_min/(1.699+1)+20) && 6562 < (A_max/(1.699+1)-20)){set arrow from 6562, graph 0 to 6562, graph 1 nohead; set label "H{/symbol a}" at 6567, graph 0.8 enhanced }
if(4861 > (A_min/(1.699+1)+20) && 4861 < (A_max/(1.699+1)-20)){set arrow from 4861, graph 0 to 4861, graph 1 nohead; set label "H{/symbol b}" at 4866, graph 0.8 enhanced }
if(4959 > (A_min/(1.699+1)+20) && 4959 < (A_max/(1.699+1)-20)){set arrow from 4959, graph 0 to 4959, graph 1 nohead; set label "O III" at 4964, graph 0.8 }
if(5007 > (A_min/(1.699+1)+20) && 5007 < (A_max/(1.699+1)-20)){set arrow from 5007, graph 0 to 5007, graph 1 nohead; set label "O III" at 5012, graph 0.8 }
if(4340 > (A_min/(1.699+1)+20) && 4340 < (A_max/(1.699+1)-20)){set arrow from 4340, graph 0 to 4340, graph 1 nohead; set label "H{/symbol g}" at 4345, graph 0.8 enhanced }
if(1216 > (A_min/(1.699+1)+20) && 1216 < (A_max/(1.699+1)-20)){set arrow from 1216, graph 0 to 1216, graph 1 nohead; set label "L{/symbol a}" at 1221, graph 0.88 enhanced }
は、なぜこれが正しく、誰このまたはエラーが表示さを改善するアイデアを動作しないのか? ありがとうございました!
ラベルとそのxの位置をデータファイルに入れ、 'ラベル付き'と 'ベクトル付き'をプロットしてください – Christoph