8

gnuplotでいくつかのデータ曲線をプロットしていますが、次のようになっています。

細い線でプロット

ただし、凡例の線のサンプルは細すぎます。カーブが多いと色の区別がつきにくくなります。「線幅」を使用して曲線の太さを増やすことができます。たとえば、プロットコマンドに「lw3」を追加すると、次のようになります。

太い線でプロット

ただし、これにより、どこでも厚みが増します。凡例だけで線を太くすることは可能ですか?出力された.pngファイルを後処理することで、「逆の方法」で実行できることを私は知っています。しかし、gnuplotの設定/ウィザードを使用した直接的なアプローチはありますか?

4

5 に答える 5

7

残念ながら、キーの線の太さは描画される線に対応しているため、制御する方法がわかりません。help set keygnuplotと入力すると、何を変更できるかがわかります。

マルチプロットを使用すると、最初にキーなしでプロット線を描画し、次に「ゴーストライン」のキーを再度描画できます。これを行うコードサンプルを次に示します。

set terminal png color size 800,600
set output 'plot.png'

set multiplot

unset key

plot '../batteries/9v/carrefour.txt' w lp, \
     '../batteries/9v/philips.txt' w lp, \
     '../batteries/9v/sony.txt' w lp

set key; unset tics; unset border; unset xlabel; unset ylabel

plot [][0:1] 2 title 'Carrefour' lw 4, \
     2 title 'Philips' lw 4, \
     2 title 'Sony' lw 4

2番目のプロットコマンドでは、関数2(定数)が0から1の範囲でプロットされているため、表示されません。

于 2012-06-15T22:18:06.833 に答える
4

私はこの投稿に出くわしました、そしてそれは私に批判的な考えを与えました。提供されたソリューションはマルチプロットモードでは機能しません。これは、2番目のプロットコマンドが2番目のプロットをトリガーするためですが、これはほとんどの場合望ましくありません。回避策として、元のデータを「notitle」として設定し、範囲外のデータを同じ線種と色で、目的のタイトルとは異なる太さでプロットすることができます。現在の例はここに残しておきます。また、私が宣言した線種も含まれています。したがって、同じ線種(ls)を使用して同じ色を取得しますが、2番目の線の太さを変更します。

     # for pngs
 set terminal pngcairo size 1600,600 font ',18' enhanced
 set output "pic_multi_kenngr_ana.png 

 set style line 2 lc rgb '#0ce90b' lt 1 lw 1.5 # --- green
 set style line 3 lc rgb '#09e0b3' lt 1 lw 1.5 #      .
 set style line 4 lc rgb '#065fd8' lt 1 lw 1.5 #      .
 set style line 5 lc rgb '#4e04cf' lt 1 lw 1.5 #      .
 set style line 6 lc rgb '#c702a9' lt 1 lw 1.5 #      .
 set style line 7 lc rgb '#bf000a' lt 1 lw 1.5 # --- red

 set multiplot layout 1,2 
 set xtics rotate
 set tmargin 5


 set xtics 12
 set grid xtics

 # set axis labels
set ylabel 'T [K]'
set xlabel 'Zeit [h]'

# select range
set xrange [0:48]
set yrange [290.15:306.15]

set title "(a) Bodentemperatur"
set key top right Right 

plot   'par_crank_hom01lvls.04.dat' u 1:3 with lines ls 7 notitle,\
       'par_crank_str01lvls.16.dat' u 1:3 with lines ls 2 notitle,\
       500  t 'z = 4 cm' ls 7 lw 4,\
       500  t 'z = 16 cm' ls 2 lw 4


################################################

set title "(b) Bodenwärmestrom an der Oberfläche"
set ylabel 'G [W m^{-2}]'
set yrange[-110:110]
unset key

plot 'par_crank_str01_ghf.dat' u 1:3 with lines


unset multiplot

これが誰かに役立つことを願っています

于 2014-10-31T11:41:54.020 に答える
1

さらに簡単な回避策(imho)は、色を明示的に定義し、各行を2回プロットすることです。1回はキーのlwが高く、タイトルはキーに表示されますが、「every :: 0 :: 0 「これは事実上何もプロットせず、かつては通常の方法で終了します。次のコードスニペットを参照してください。

plot data              u 0:1 w l linecolor rgb #1b9e77 lw 2 t "",\
     data every ::0::0 u 0:1 w l linecolor rgb #1b9e77 lw 4 t "Title"
于 2016-08-16T07:47:19.383 に答える
1

@Svalorzenによるコメントを拡張するためにNaN、以下では、タイトルのないdatafile.txtから幅1の2行をグラフ化し、指定されたタイトルとキーのみの幅5で一致する空白行を作成します。

plot [][]\
    NaN title "Title1" w line lt 1 lc 1 lw 5,\
    NaN title "Title2" w line lt 1 lc 2 lw 5,\
    "datafile.txt" using 1:2 title "" w line lt 1 lc 1 lw 1,\
    "datafile.txt" using 1:3 title "" w line lt 1 lc 2 lw 1
于 2019-09-08T22:03:06.607 に答える
0

私はこれに対する答えを見つけます: キーの線幅を設定します

あなたの場合、次のようにする必要があります。

plot '../batteries/9v/carrefour.txt' w l lw 1 linetype 1 notitle, 0/0 linetype 1 linewidth 5 title 'Carrefour' 
rep '../batteries/9v/philips.txt' w l lw 1 linetype 2 notitle, 0/0 linetype 2 linewidth 5 title 'Philips' 
rep '../batteries/9v/sony.txt' w l lw 1, linetype 3 notitle, 0/0 linetype 3 linewidth 5 title 'Sony' 
于 2018-11-26T22:46:47.807 に答える