Kreslení čarových grafů v IDL I

Základní použití příkazu PLOT

x=!pi*2/100*FINDGEN(100)
;data proti indexu
PLOT,sin(x)
;nezavisle a zavisle promenne
PLOT,x,sin(x)
;graf parametricky zadane fce
PLOT,cos(x),sin(x)

Klíčová slova pro PLOT (a další grafické procedury)

;popisy, titulky PLOT,x,sin(x), ...
	TITLE='horni titulek'
	SUBTITLE='spodni titulek'
	XTITLE='popis osy X'
	YTITLE='popis osy Y'
	CHARSIZE=relativni_velikost_pisma
	XCHARSIZE=rel_velikost_popisu_X
	YCHARSIZE=rel_velikost_popisu_Y
;priklad
PLOT,x,sin(x), TITLE='horni',SUBTITLE='spodni', $
 XTITLE='popis osy X', YTITLE='popis osy Y', $
 CHARSIZE=2, XCHARSIZE=0.5, YCHARSIZE=1.2
;barvy
	COLOR=barva_popredi
	BACKGROUND=barva_pozadi
;nastaveni barevne skaly "duha" (indexy barev 0 az !D.table_size-1)
DEVICE, DECOMPOSED=0 & LOADCT,39
PLOT,x,sin(x),COLOR=200
;rozsah os
	/YNOZERO   ;osa Y nezacina v 0
	XRANGE=[xmin,xmax]
	YRANGE=[ymin,ymax]
PLOT,x,sin(x)+3
PLOT,x,sin(x)+3,/YNOZERO
PLOT,x,sin(x),XRANGE=[0,10],YRANGE=[-2,2]
;rozsah zobrazenych dat
	MIN_VALUE,MAX_VALUE
PLOT,x,sin(x),MIN_VALUE=0.25,MAX_VALUE=0.75 
;umisteni grafu
	POSITION=[x_vlevo_dole,y_vlevo_dole,x_vpravo_nahore,y_vpravo_nahore]
	/NORMAL ;normalni souradnice okna [0..1,0..1]
	/DEVICE ;souradnice zarizeni napr. [0..640,0..480]
	/DATA   ;datova transformace pro definovane osy = box [0..1,0..1]
;styl os
	XSTYLE, YSTYLE= soucet masek stylu

1 - přesný rozsah osy, 2 - rozšíření rozsahu, 4 - osa se nekreslí, 8 - osa se kreslí jen dole (vlevo), 16 - osa Y nezačíná v 0 (jako /YNOZERO)

;styl car grafu
	LINESTYLE= styl

0 - souvislá, 1 - tečkovaná, 2 - čárkovaná, 3 - čerchovaná, 4 - čárka + tři tečky, 5 - dlouhé čárky

;styl bodů grafu (PSYM >0 ... kreslí se jen body, PSYM <0 ... kreslí se body i čáry) 
	PSYM= styl

1-7 plus, hvězdička, tečka, kosočtverec, trojúhelník, čtverec, 8 uživatelský symbol (definovaný přes USERSYM), 10 mod histogram

Anotace příkazem XYOUTS

XYOUTS, 0.5,0.8, 'dalsi popis'

Kreslení čarových grafů v IDL II

Příkaz PLOT - stupnice na osách

logaritmická osa X:

PLOT,x,y,/XLOG

logaritmická osa Y:

PLOT,x,y,/YLOG

logaritmická osa X a Y:

PLOT,x,y,/XLOG,/YLOG

Příkaz PLOT - redukce bodů grafu

zobrazení průměru n bodů:

PLOT,x,y,NSUM=n

Příkaz PLOT - koordináty

polární souřadnice - box:

PLOT,r,phi,/POLAR

polární souřadnice - kříž (potlačit kreslení os a použít příkaz AXIS):

PLOT,r,phi,/POLAR,XSTYLE=4,YSTYLE=4
AXIS,0,0,/XAXIS
AXIS,0,0,/YAXIS

Příkaz PLOT - časová osa

práce s časovou osou s využitím procedur JULAX,JULNORM (ke stažení u autora):

;simul.data
x=RANDOMU(seed,100)
;pocatecni cas... JULTIME(ms,sec,min,day,month,year)
t0=JULTIME(0,0,0,0,7,11,2000)
;vektor casu po 1 minute (1 den = 1440 min)
t=t0+DINDGEN(100)*1D/1440
;rozsah casu [t(0),t(N_ELEMENTS(t)-1)]
tr=[MIN(t),MAX(t)]
;definice casove osy
JULAX,tr,ts,tv,tn,tm,NINT=6
;kresleni dat a nastaveni casove osy
PLOT, JULNORM(t,tr),$ ;normalizace casu t do rozsahu 0..1  
      X, $ ;vektor dat
      XTICKS=ts, $ ;pocet hlavnich tiku
      XTICKV=tv, $ ;polohy hlavnich tiku
      XTICKN=tn, $ ;popis hlavnich tiku
      XMINOR=tm    ;pocet malych tiku

Umístění grafů v okně - proměnná !P.MULTI

Více grafů v jednom okně

!P.MULTI=[zbyvajici_pocet_v_okne,pocet_sloupců,pocet_řad,pocet_v_Z,{0-po_sloupcích,1-po_řadách}]
Alternativně lze zadat jen hodnoty prvních tří položek.

Příklad 1.

 ;nastaveni rozvrzeni grafu v okne
 !P.MULTI=[0,2,3,1,1] 
 
 ;zvetsime velikost pisma 
 !P.charsize=2
 
 ;nazavisla promenna
 x=2*!pi/100*findgen(100)
  
 ;kreslime grafy
 plot,x,sin(x)
 plot,x,cos(x)
 plot,cos(x),sin(x)
 plot,sin(x)
 plot,x,sin(x), psym=4, nsum=10
 plot,x,sin(x), psym=-2, xstyle=9, ystyle=10, nsum=10

Příklad 2.

 ;nastaveni rozvrzeni grafu v okne
 ;variantou je !P.MULTI=[0,2,2,1,0] 
 !P.MULTI=[0,2,2] 
 
 ;nazavisla promenna
 x=2*!pi/100*findgen(100)
  
 ;kreslime grafy
 plot,x,sin(x), ytitle='sinus'
 plot,x,cos(x), ytitle='cosinus'
 
 ;nastaveni rozvrzeni grafu v okne - spodni polovina 
 !P.MULTI=[1,1,2] 
 
 plot,x, cos(x)*sin(x), title='graf jak ma byt', $
  xstyle=1, xtitle='x [rad]', ytitle='sin(x)*cos(x)',$
  thick=3, ticklen=1

Zpět jeden graf

!P.MULTI=0

L.Přech, poslední úpravy 22.11.2000