我正在使用gnuplot绘制一些数据曲线,它们看起来像这样:
但是,图例中的线条样本太薄。如果有更多曲线,则很难区分颜色。您可以使用“线宽”增加曲线的粗细,例如,通过在绘图命令中添加“lw 3”,您就可以得到:
然而,这增加了到处的厚度。是否可以仅在图例中使线条变粗?我知道它可以通过对输出.png文件进行后处理来“完成另一种方式”。但有没有直接的方法,使用一些gnuplot设置/魔法?
答案 0 :(得分:7)
不幸的是,我不知道如何控制键中线条的粗细,因为它们对应于绘制的线条。您可以在gnuplot中键入help set key
来查看可以更改的内容。
使用多重绘图,您可以在没有键的情况下首先绘制绘图线,然后再次为“鬼线”绘制键。下面是一个代码示例:
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(常量)正在绘制,y范围为0到1,因此它不会显示。
答案 1 :(得分:2)
我跑过这篇文章,它给了我一个批判性的想法。 提供的解决方案在多时隙模式下不起作用,因为第二个绘图命令将触发第二个绘图,这很可能是不需要的。 作为一种解决方法,可以将原始数据设置为" notitle",然后使用相同的线型和不同厚度的颜色将数据绘制在范围之外,并使用所需的标题。我在这里留下我当前的例子。它还包括我声明的线条样式。所以我只使用相同的linestyle(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
我希望这能帮到某人
答案 2 :(得分:1)
更简单的解决方法(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"
答案 3 :(得分:1)
要扩展@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
答案 4 :(得分:0)
我为此找到了答案: Set key linewidth
在您的情况下,必须为:
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'