Thicker lines in the legend of gnuplot

Unfortunately, I don't know a way to control the thickness of the lines in the key, since they correspond to the lines being drawn. You can see what you can change by typing help set key in gnuplot.

Using multiplot, you can draw the plot lines first without the key, then draw the key again for 'ghost lines'. Here is a code sample which would do that:

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

In the second plot command, the function 2 (a constant) is being plotted with a y range of 0 to 1, so it doesn't show up.


I ran across this post and it gave me a critical idea. The provided solution does not work in multiplot mode, since the second plot command will trigger the second plot, which is most likely not desired. as a workaround one can set the original data as "notitle", then plot data outside of range with the same linetype and color in different thickness with the desired title. I'll just leave my current example here. It also includes linestyles that i have declared. So i just use the same linestyle (ls) to get the same color but change the thickness on the second line.

     # 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

I hope this will help someone