Tento článek navazuje na předchozí o zobrazování spekter pomocí Gnuplotu. Velmi často se hodí zobrazit více spekter/grafů v jednom obrázku. Tady je jednoduchý způsob, jak toho docílit.
Použijeme stejné datové soubory, jako v předchozím návodu. Skript upravíme na následující podobu:
#datové soubory textFile = 'data1.dpt' textFile2 = 'data2.dpt' set key center top title " " set label "[Co(NH_3)_5ONO]Cl_2" at 2400,2.0 center font "Arial,20" tc rgb "red" set label "[Co(NH_3)_5NO_2]Cl_2" at 2400,1.9 center font "Arial,20" tc rgb "blue" set xlabel "Vlnočet [cm^{-1}]" set xrange [4000 : 400.0] set yrange [0 : 2.3] set ylabel "Absorbance" set style line 1 lt 2 lc rgb "red" lw 3 set border 3 set xtics 200 nomirror set ytics nomirror show style line show label #styly linií pro jednotlivé křivky set style line 1 lc rgb '#ff0000' lt 1 lw 1.1 pt 0 ps 0.5 set style line 2 lc rgb '#0000ff' lt 1 lw 1.1 pt 0 ps 0.5 set term pngcairo size 1500,1000 crop textFileLen = strlen(textFile); set output "test.png" #vykreslení obou spekter plot textFile with linespoints ls 1 notitle,\ textFile2 with linespoints ls 2 notitle
Pomocí tohoto skriptu získáme obrázek podobný tomuto:
Barvu jednotlivých spekter nastavíme v řádcích set style … a pak je použijeme při vykreslení spektra, klíčové slovo je ls a číslo stylu čáry.
Často se hodí spektra odsadit, aby šlo lépe porovnat rozdíly. Toho docílíme malou úpravou skriptu:
#datové soubory textFile = 'data1.dpt' textFile2 = 'data2.dpt' set key center top title " " set label "[Co(NH_3)_5ONO]Cl_2" at 2400,2.2 center font "Arial,20" tc rgb "red" set label "[Co(NH_3)_5NO_2]Cl_2" at 2400,2.1 center font "Arial,20" tc rgb "blue" set xlabel "Vlnočet [cm^{-1}]" set xrange [4000 : 400.0] set yrange [0 : 2.3] set ylabel "Absorbance" set style line 1 lt 2 lc rgb "red" lw 3 set border 3 set xtics 200 nomirror set ytics nomirror show style line show label #styly linií pro jednotlivé křivky set style line 1 lc rgb '#ff0000' lt 1 lw 1.1 pt 0 ps 0.5 set style line 2 lc rgb '#0000ff' lt 1 lw 1.1 pt 0 ps 0.5 set term pngcairo size 1500,1000 crop textFileLen = strlen(textFile); set output "test2.png" #vykreslení obou spekter plot textFile with linespoints ls 1 notitle,\ textFile2 using ($1):($2 + 0.2) with linespoints ls 2 notitle
Nejdůležitější úprava je v posledním řádku skriptu. Klauzule using umožňuje manipulaci s daty. První datový sloupec je uložen do proměnné $1 a druhý do $2. Pak už lze snadno zvýšit hodnotu y-souřadnice a tím jedno spektrum zvednout o 0,2 dílku na ose y. Jako vedlejší efekt je ještě vhodné upravit souřadnice popisků spekter a rozsah osy y.
Tímto snadným způsobem lze zobrazit dvě a více spekter v jednom obrázku. Pokud máme více spekter, tak lze snad napsat skriptu v perlu (příp. php), který bude obrázky spekter pomocí gnuplotu generovat automaticky.