3

ノーマルプロットとパラメトリックプロット(およびpm3dマップとパラメトリックサーフェス)を混合するため、Gnuplotで重複するグラフを作成します。これは、1つのことを除いて、ほとんど正常に機能します。両方のプロットにタイトルがある場合、通常、凡例は重複しています。典型的な例は次のようになります。

#legends.gp
set term pngcairo enhanced color linewidth 1.5  dashed dashlength 1.4 rounded
set output "legends.png"

set title "legends test"

set multiplot

# make a box around the legend
set key box

set border 15 lw 1

# fix the margins, this is important to ensure alignment of the plots.
set lmargin at screen 0.15
set rmargin at screen 0.98
set tmargin at screen 0.90
set bmargin at screen 0.15

set xlabel "x"
set ylabel "sin(x)"

set xrange[0:2*pi]
set yrange[-1:1]

set grid x y

# add single tic at 0.62
set xtics add ("x0" 0.62)

# main plot command
plot sin(x) title "sinus"

# turn everything off
set format x ""   #numbers off
set format y ""
set xlabel ""     #label off
set ylabel ""
set border 0      #border off
unset xtics       #tics off
unset ytics
unset grid        #grid off
unset title       #title off

#plot vertical line at 0.62
set parametric
plot 0.62,t ls 2 lw 2 title "parametric Line"
unset parametric

unset multiplot

Legends.png 私の質問は、複数のプロットに対して単一の凡例を作成するための簡単でほとんど自動の方法はありますか?

PS申し訳ありませんが、将来の読者に役立つと思われる機能をいくつか表示することで、サンプルファイルを必要以上に複雑にすることになりました。

4

2 に答える 2

12

これが私のために働く非常に汚いハックです変化する:

plot sin(x) title "sinus"

に:

plot sin(x) title "sinus",NaN w l ls 2 lt 2 title "parametric line"

次に、タイトルなしで(たとえばnotitleの代わりにtitle "parametric line")パラメトリックラインをプロットします。

これが機能するのは、gnuplotがプロット時にNaNを無視するためです。基本的に、上記でプロットしている2番目のものは、凡例に1つの要素を追加するだけです。凡例に正しく表示されるように、線種などをパラメトリックプロットの線種/タイプと同じになるように指定します。私の知る限り、これがこのようなことをする唯一の方法です...

もちろん、両方がパラメトリックにプロットされ、マルチプロットビジネス全体を放棄するように編集することもできます...

set xrange [0:2*pi]
set yrange [-1:1]
set parametric
set trange [-10:10]
plot t,sin(t) title "Hello", 0.62,t title "World"

それはおそらく「よりクリーンな」解決策です...(しかし、gnuplotの「魔法」での作業はそれほど楽しくありません)

于 2012-04-27T17:50:18.007 に答える
0

gnuplot情報マニュアルから:

x = 3でグラフの下から上に垂直線を引くには、次を使用します。矢印を3、グラフ0から3、グラフ1noheadに設定します。

于 2012-08-31T17:35:00.940 に答える