### COME REALIZZARE GRAFI (E ...) ### ## ## Puoi modificare i colori, il font, ... (la finestra è ridimensionabile col mouse) ## ## Parte standard # Comandi che puoi richiamare e cambiare dim <- 1 # dimensione dei font font <- 1 # tipo di font co <- "yellow"; bo <- NA # colore e bordo dei box (rett) co1 <- NA; bo1 <- "black" # colore e bordo di riquadri (rett1) tratto <- 1 # se metti 3 o 2 le linee sono tratteggiate, così sono cont. # Comandi che devi rimettere per ogni nuovo grafo par( mai = c(0,0,0,0) ) plot(c(0,100),c(0,100),type="n",fg="white") # ** text(0,0,"0,0",col="red");text(0,50,"50",col="red");text(50,0,"50",col="red") abline(h=seq(0,100,10),v=seq(0,100,10),lty=2,col="grey") # reticolo # fatto il grafo con la griglia ricopia i comandi con solo ** in testa # Comandi che non devi più richiamare linea_ <- function(P,Q) lines( c(P[1],Q[1]),c(P[2],Q[2]),lty=tratto ) rett <- function(P) rect(P[1]-P[3],P[2]-P[4],P[1]+P[3],P[2]+P[4],col=co,border=bo,lty=tratto) rett1 <- function(P) rect(P[1]-P[3],P[2]-P[4],P[1]+P[3],P[2]+P[4],col=co1,border=bo1,lty=tratto) frase <- function(P,F) text(P[1],P[2],F,cex=dim,font=font) freccian <- function(P,Q) arrows(P[1],P[2],Q[1],Q[2],length=0.08,lty=tratto) # normale frecciau <- function(P,Q) arrows(P[1],P[2],Q[1],Q[2]-Q[4],length=0.08,lty=tratto) # su frecciad <- function(P,Q) arrows(P[1],P[2],Q[1],Q[2]+Q[4],length=0.08,lty=tratto) # giù frecciar <- function(P,Q) arrows(P[1],P[2],Q[1]-Q[3],Q[2],length=0.08,lty=tratto) # destra freccial <- function(P,Q) arrows(P[1],P[2],Q[1]+Q[3],Q[2],length=0.08,lty=tratto) # sinistra ## Fine parte standard # ## ESEMPIO 1 ## Xcentro,Ycentro, Dx,Dy, Frase p1 <- c(15, 11, 13, 4); f1 <- "prova breve" p2 <- c(15, 6, 13, 4); f2 <- "da fare" p3 <- c(80, 90, 10, 5); f3 <- "PROVA" p4 <- c(50, 80, 9, 5); f4 <- "Eccola" p5 <- c(90, 40, 3, 3); f5 <- "o" linea_(p1,p3) frecciau(p1,p4) frecciad(p4,p1) frecciar(p1,p5) rett(p1); rett(p2); frase(p1,f1); frase(p2,f2) rett(p3); frase(p3,f3) rett(p4); frase(p4,f4) rett(p5); frase(p5,f5) # # OK lo rifaccio senza reticolo plot(c(0,100),c(0,100),type="n",fg="white") linea_(p1,p3) frecciau(p1,p4) frecciad(p4,p1) frecciar(p1,p5) rett(p1); rett(p2); frase(p1,f1); frase(p2,f2) rett(p3); frase(p3,f3) rett(p4); frase(p4,f4) rett(p5); frase(p5,f5) # ## ESEMPIO 2 # Come sopra, con caratteri piu' piccoli, in Times, inclinati: dim <- 0.8; font <- 8 plot(c(0,100),c(0,100),type="n",fg="white") p1 <- c(15, 11, 11, 3); f1 <- "prova breve" p2 <- c(15, 6, 11, 3); f2 <- "da fare" p3 <- c(80, 90, 9, 4); f3 <- "PROVA" p4 <- c(50, 80, 8, 4); f4 <- "Eccola" p5 <- c(90, 40, 3, 4); f5 <- "o" linea_(p1,p3) frecciau(p1,p4) frecciad(p4,p1) frecciar(p1,p5) rett(p1); rett(p2); frase(p1,f1); frase(p2,f2) rett(p3); frase(p3,f3) rett(p4); frase(p4,f4) rett(p5); frase(p5,f5) # ## ESEMPIO 3 dim <- 1; font <- 1 plot(c(0,100),c(0,100),type="n",fg="white") abline(h=seq(0,100,10),v=seq(0,100,10),lty=2,col="grey") text(0,0,"0,0",col="red");text(0,50,"50",col="red");text(50,0,"50",col="red") ## Xcentro,Ycentro, Dx,Dy, Frase p1 <- c(55, 52.5, 15, 4.5); f1 <- "bicicletta" p2 <- c(55, 47.5, 15, 4.5); f2 <- "con cambio" rett(p1); rett(p2); frase(p1,f1); frase(p2,f2) rett1(c(55,50, 15, 7)) # ho messo la scritta nel riquadro; ora scrivo più piccolo dim <- 0.9 freccian(c(15,53),c(40,53)) freccian(c(15,47),c(40,47)) frase(c((40+15)/2,56),"movimento") frase(c((40+15)/2,44),"informazioni") frase(c(8,53),"uomo") frase(c(8,47),"uomo") freccian(c(70,50),c(95,50)) frase(c((70+95)/2,53),"movimento") dim <- 1 ## OK. Ora lo faccio senza reticolo plot(c(0,100),c(0,100),type="n",fg="white") co <- "pink" rett(p1); rett(p2); frase(p1,f1); frase(p2,f2) rett1(c(55,50, 15, 7)) # ho messo la scritta nel riquadro; ora scrivo più piccolo dim <- 0.9 freccian(c(15,53),c(40,53)) freccian(c(15,47),c(40,47)) frase(c((40+15)/2,56),"movimento") frase(c((40+15)/2,44),"informazioni") frase(c(8,53),"uomo") frase(c(8,47),"uomo") freccian(c(70,50),c(95,50)) frase(c((70+95)/2,53),"movimento") dim <- 1 # ## ESEMPIO 4 dim <- 1; font <- 1 plot(c(0,100),c(0,100),type="n",fg="white") abline(h=seq(0,100,10),v=seq(0,100,10),lty=2,col="grey") text(0,0,"0,0",col="red");text(0,50,"50",col="red");text(50,0,"50",col="red") co <- "yellow" p1 <- c(40,60,20,15); f1 <- "multipli di 2" rett(p1); frase(p1,f1) co <- "green" p2 <- c(50,40,20,15); f2 <- "multipli di 5" rett(p2); frase(p2,f2) co <- "pink" p3 <- c(45,50,15,5); f3 <- "multipli di 10" rett(p3); frase(p3,f3) # OK plot(c(0,100),c(0,100),type="n",fg="white") co <- "yellow" p1 <- c(40,60,20,15); f1 <- "multipli di 2" rett(p1); frase(p1,f1) co <- "green" p2 <- c(50,40,20,15); f2 <- "multipli di 5" rett(p2); frase(p2,f2) co <- "pink" p3 <- c(45,50,15,5); f3 <- "multipli di 10" rett(p3); frase(p3,f3) # ## ESEMPIO 5 par( mai = c(0,0,0,0) ) plot(c(0,100),c(0,100),type="n",fg="white") # traccio la griglia abline(h=seq(0,100,10),v=seq(0,100,10),lty=2,col="grey") dim <- 0.9 # distanzio verticalmente ad es. di 20 i nodi (80, 60, ...) # provo a distanziarli orizzontalmente di 24 (56-24=32,...) p1 <- c(56, 80, 13, 4); f1 <- "trasf. di scala" p2 <- c(32, 60, 22, 4); f2 <- "tr. di sc. monometriche" p3 <- c(80, 60, 17, 4); f3 <- "altre trasf. di scala" p4 <- c(10, 40, 8.6, 4); f4 <- "riduzioni" p5 <- c(32, 40, 7.4, 4); f5 <- "identità" p6 <- c(54, 40, 12.5, 4); f6 <- "ingrandimenti" linea_(p1,p2); linea_(p1,p3); linea_(p2,p4); linea_(p2,p5); linea_(p2,p6) # aggiungo le scritte rett(p1); frase(p1,f1); rett(p2); frase(p2,f2) rett(p3); frase(p3,f3); rett(p4); frase(p4,f4) rett(p5); frase(p5,f5); rett(p6); frase(p6,f6) # ok. Ora ridimensiono col mouse la finestra # e ritraccio senza griglia plot(c(0,100),c(0,100),type="n",fg="white") abline(h=seq(0,100,10),v=seq(0,100,10),lty=2,col="white") linea_(p1,p2); linea_(p1,p3); linea_(p2,p4); linea_(p2,p5); linea_(p2,p6) rett(p1); frase(p1,f1); rett(p2); frase(p2,f2) rett(p3); frase(p3,f3); rett(p4); frase(p4,f4) rett(p5); frase(p5,f5); rett(p6); frase(p6,f6) # ## ESEMPIO 6 [ A/(B+C) + (D+E)/F ] par( mai = c(0,0,0,0) ) plot(c(0,100),c(0,100),type="n",fg="white") dim <- 1.1 p1 <- c(50, 80, 3, 3); f1 <- "+" p2 <- c(25, 55, 3, 3); f2 <- "/" p3 <- c(75, 55, 3, 3); f3 <- "/" p4 <- c(13, 43, 3, 3); f4 <- "A" p5 <- c(37, 43, 3, 3); f5 <- "+" p6 <- c(63, 43, 3, 3); f6 <- "+" p7 <- c(87, 43, 3, 3); f7 <- "F" p8 <- c(28, 34, 3, 3); f8 <- "B" p9 <- c(46, 34, 3, 3); f9 <- "C" p10 <- c(54, 34, 3, 3); f10 <- "D" p11 <- c(72, 34, 3, 3); f11 <- "E" linea_(p1,p2); linea_(p1,p3) linea_(p2,p4); linea_(p2,p5); linea_(p3,p6); linea_(p3,p7) linea_(p5,p8); linea_(p5,p9); linea_(p6,p10); linea_(p6,p11) rett(p1); rett(p2); rett(p3); rett(p5); rett(p6) co <- "white" rett(p4); rett(p7); rett(p8); rett(p9); rett(p10); rett(p11) co <- "yellow" frase(p1,f1); frase(p2,f2); frase(p3,f3); frase(p4,f4) frase(p5,f5); frase(p6,f6); frase(p7,f7); frase(p8,f8) frase(p9,f9); frase(p10,f10); frase(p11,f11) # ## ESEMPIO 7 [ (2^3)*(-x)/(9-1)+x*5 ] par( mai = c(0,0,0,0) ) plot(c(0,100),c(0,100),type="n",fg="white") dim <- 1.1 p1 <- c(70, 85, 3, 4); f1 <- "+" p2 <- c(50, 60, 3, 4); f2 <- "/" p3 <- c(90, 60, 3, 4); f3 <- "*" p4 <- c(81, 45, 3, 4); f4 <- "x" p5 <- c(99, 45, 3, 4); f5 <- "5" linea_(p1,p2); linea_(p1,p3) linea_(p3,p4); linea_(p3,p5) p6 <- c(30, 45, 3, 4); f6 <- "*" p7 <- c(70, 45, 3, 4); f7 <- "-" linea_(p2,p6); linea_(p2,p7) p8 <- c(61, 30, 3, 4); f8 <- "9" p9 <- c(79, 30, 3, 4); f9 <- "1" linea_(p7,p8); linea_(p7,p9) p10 <- c(20, 30, 3, 4); f10 <- "^" p11 <- c(40, 30, 3, 4); f11 <- "-" linea_(p6,p10); linea_(p6,p11) p12 <- c(11, 15, 3, 4); f12 <- "2" p13 <- c(29, 15, 3, 4); f13 <- "3" p14 <- c(40, 15, 3, 4); f14 <- "x" linea_(p10,p12); linea_(p10,p13) linea_(p11,p14) rett(p1); rett(p2); rett(p3); rett(p5); rett(p6); rett(p7); rett(p10); rett(p11) co <- "white" rett(p4); rett(p5); rett(p8); rett(p9); rett(p12); rett(p13); rett(p14) co <- "yellow" frase(p1,f1); frase(p2,f2); frase(p3,f3); frase(p4,f4) frase(p5,f5); frase(p6,f6); frase(p7,f7); frase(p8,f8) frase(p9,f9); frase(p10,f10); frase(p11,f11) frase(p12,f12); frase(p13,f13); frase(p14,f14)