Gnuplot a tvorba přehledu charakteristických vibrací molekul

Gnuplot je poměrně jednoduchý, ale schopný nástroj na tvorbu grafů, úpravu spekter, apod. Lze ho využít i k jiným účelům. Do výukových materiálů jsem potřeboval vytvořit přehled poloh charakteristických vibrací skupin v IR a RA spektroskopii, což lze snadno udělat v běžném kreslícím programu, ale pro negrafiky je pak poměrně náročná úprava hotového obrázku. Proto jsem se rozhodl pro vytvoření skriptu, který snadno umožní vkládání nových řádků, případně jejich přemisťování.

Možností, jak požadovaný obrázek vytvořit je několik, já jsem použil šipky (arrows), které umožní snadnou změnu vzhledu. Prvním krokem je definice vzhledu šipek, nadefinoval jsem dva styly:

set style arrow 1 lc rgb '#ff0000' lw 5 heads size screen 0.0010,90
set style arrow 2 lc rgb '#0000ff' lw 5 heads size screen 0.0010,90

Styl 1 je pro modré šipky, styl 2 pro červené. Obě šipky mají tloušťku čar 5 a zakončení na obou stranách tvořené čarami, které svírají úhel 90° a mají délku 0,001.

Dalším krokem je definice os a rozsahů.

set xtics 600,200,3800 mirror
set x2tics 600,200,3800 mirror
set ytics ("C-F" 1,"C-Cl" 2, "S=0" 3, "Thioly" 4, "CN" 5, "NO_2" 6, \
          "C=O" 7, "Aminy" 8, "Ethery" 9, "Alkoholy" 10, "Aromatika" 11, \
          "C≡C, C≡H" 12, "=CH, C=C" 13, "(CH_2)" 14, \
          "CMe_2" 15, "CH" 16, "CH_2" 17, "CH_3" 18)

set xrange [3800:600]
set yrange [0.5:19]

První dva řádky definují osy x, pro přehlednost použijeme spodní (x) i horní (x2). Kótování bude po 200 v rozsahu 600 až 3800.  Poslední dva řádky definují rozsah os x a y. Třetí řádek definuje popisky na ose y, ty obsahují jednotlivé typy vazeb.

Poslední, co potřebujeme pro nastavení vzhledu obrázku je definice mřížky.

set style line 2 lc rgb '#bbbbbb' lt 1 lw 1
set grid back ls 2

Nadefinujeme si čáru o tloušťce 1 a šedé barvě, tu pak použijeme pro vykreslení mřížky.

Vzhled máme hotový, teď už můžeme začít do obrázku vkládat jednotlivé rozsahy vlnočtů vibrací. Aby byla pozdější úprava jednodušší, nebudeme pozici na ose y zadávat číselně, ale jako proměnnou, kterou postupně inkrementujeme.

i=1
set arrow from 1400,i to 1030,i arrowstyle i%2+1

i=i+1
set arrow from 900,i to 600,i arrowstyle i%2+1

Na prvním řádku je definice proměnné i, která obsahuje pozici y. Pozice šipky je určena dvojicí souřadnic (from x,y to x,y). Výraz za arrowstyle určuje styl (barvu) šipky. Operátor % je tzv. modulo, vrací zbytek po dělení. Takže pokud bude i sudé, použije se styl 1, pro liché styl 2.

Tím máme hotovo, na úplný konec je potřeba jen zvolit do jakého formátu a velikosti chceme obrázek uložit a obrázek vytvořit.

set term pngcairo size 1500,1000 crop
set output "prehled.png"

plot 0 notitle with lines lt 0

Náš obrázek bude vypadat nějak takto:

IR-vlnocty

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.