gnuplot传说中较粗的线条

gnuplot传说中较粗的线条,gnuplot,legend,presentation,Gnuplot,Legend,Presentation,我正在用gnuplot绘制一些数据曲线,它们看起来像这样: 但是,图例中的线样本太薄。当您有更多的曲线时,将很难区分颜色。可以使用“线宽”(linewidth)增加曲线的厚度,例如,通过在plot命令中添加“lw 3”,可以得到以下结果: 然而,这增加了所有地方的厚度。是否可以只在图例中加粗线条?我知道可以通过对output.png文件进行后处理“以另一种方式”完成。但是有没有直接的方法,使用一些gnuplot设置/向导?不幸的是,我不知道如何控制键中线条的厚度,因为它们对应于正在绘制的线条

我正在用gnuplot绘制一些数据曲线,它们看起来像这样:

但是,图例中的线样本太薄。当您有更多的曲线时,将很难区分颜色。可以使用“线宽”(linewidth)增加曲线的厚度,例如,通过在plot命令中添加“lw 3”,可以得到以下结果:


然而,这增加了所有地方的厚度。是否可以只在图例中加粗线条?我知道可以通过对output.png文件进行后处理“以另一种方式”完成。但是有没有直接的方法,使用一些gnuplot设置/向导?

不幸的是,我不知道如何控制键中线条的厚度,因为它们对应于正在绘制的线条。通过在gnuplot中键入
help set key
,您可以看到可以更改的内容

使用multiplot,您可以先在不使用关键点的情况下绘制打印线,然后再次绘制“重影线”的关键点。下面是一个代码示例,它可以做到这一点:

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

在第二个plot命令中,函数2(一个常量)的y范围为0到1,因此它不会显示。

我浏览了这篇文章,它给了我一个重要的想法。 提供的解决方案无法在多点模式下工作,因为第二个plot命令将触发第二个plot,这很可能是不需要的。 作为一种解决方法,可以将原始数据设置为“notitle”,然后使用相同的线型和颜色以不同的厚度用所需的标题打印范围外的数据。我将在这里留下我当前的示例。它还包括我声明的线型。所以我只是使用相同的线型(ls)来获得相同的颜色,但在第二行上更改厚度

     # 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

我希望这将有助于某人

一个更简单的解决方法(imho)是明确定义颜色并绘制每一行两次,一次使用高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"
我找到了一个答案:

在您的情况下,必须:

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' 

要展开@Svalorzen的
NaN
注释,以下将从某个datafile.txt中绘制两行宽度为1且没有标题的图,并创建具有指定标题和宽度为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

哇,这真是天才:)我从没想过!我不得不对它进行一些修改,因为我的gnuplot不接受三次(仅一次)指定范围([[0:1])。此外,还必须为第二个绘图取消设置xlabel/ylabel。但除此之外,它就像一个符咒!谢谢感谢您的更正,我在发布之前没有正确测试我的脚本:)在我的例子中,我只是绘制了
NaN
,效果很好。