R funzioni grafiche

Atlante di anatomia
Atlante di Anatomia
Umana
Entamoeba coli1
Atlante di Parassitologia
Virus2
Atlante di ematologia
new
Atlante del protozoi
new
Citologia e istologia
Atlante di Virologia
Atlante di Ematologia
Atlante dei protozoi intestinali
Atlante di citologia e istologia
Bayes
DNA_0527s
Informazioni: info@bayes.it
Scrivimi: webmaster@bayes.it

Ultimo aggiornamento: 13 maggio 2012

117.194 visitatori dal maggio 2008

Per la riproduzione dei contenuti del sito è necessario il permesso dell’Autore

NOTA LEGALE
 
L’interpretazione dei risultati delle analisi di laboratorio deve essere effettuata esclusivamente dal medico e alla luce dei dati clinici.
Questo sito ha uno scopo esclusivamente educativo e formativo. Pertanto le informazioni in esso contenute possono essere utilizzate esclusivamente a scopo didattico, e anche in questo caso sotto la responsabilità personale di chi le utilizza, sia per sé stesso sia per terzi.
Le informazioni contenute in questo sito non possono e non devono essere utilizzate né a scopo diagnostico, né a scopo prognostico, né a scopo terapeutico, né per qualsiasi attività che abbia un impatto sia diretto sia indiretto sullo stato di salute di  un individuo o di più individui.
Nessuna responsabilità può essere imputata all’autore per danni diretti o indiretti e di qualsivoglia natura che potrebbero essere causati a sé stessi o a terzi a causa di errori, imprecisioni, omissioni, interpretazioni o utilizzo dei contenuti di questo sito o dei siti cui esso fa riferimento.

 

 
NOTA SUI COLLEGAMENTI
ALLE FONTI BIBLIOGRAFICHE
 
La maggior parte dei collegamenti ad articoli scientifici riportati nel sito fa riferimento a riviste online che forniscono gratuitamente l’articolo originale. In alcuni casi è necessario registrarsi sul sito per avere libero accesso agli articoli: questo accade per esempio con il BMJ. Quando i collegamenti  fanno riferimento a fonti bibliografiche a pagamento, chi non ha sottoscritto un abbonamento con la rivista potrebbe vedere comparire un messaggio del tipo “access forbidden”, ma il più delle volte vedrà comparire una pagina che consente di acquistare online l’articolo originale.
 
 

Le statistiche complete del sito

Le funzioni grafiche di R sono trattate assumendo che abbiate familiarizzato adeguatamente con tutti gli argomenti contenuti nella parte preliminare.
 
Attenzione: le indicazioni qui riportate fanno riferimento alla versione di R per Windows©.
Per MacOS X© vedere come utilizzare i dati e gli script con MacOS X.
 
Potete imparare facilmente a utilizzare R per generare i principali tipi di grafico, inclusi grafici tridimensionali che possono essere ruotati con il mouse, seguendo gli script e i dati di esempio attualmente raccolti sotto questi argomenti:
istogrammi e density-plot
diagrammi a scatola e baffi (box & whiskers plot)
diagrammi di distribuzione (scatter-plot) e grafici 3D
diagrammi di correlazione (correlogrammi)
grafici per l’identificazione degli outliers (valori erratici)
 
Attenzione: in alcuni casi gli esempi riportati prevedono l’uso di librerie che sono scaricate automaticamente dal CRAN e installate automaticamente sul PC (questo, ovviamente, solo se è la prima volta che le usate): per questa ragione è necessario essere collegati a Internet.
 
Istogrammi e density-plot
 
→ create la cartella C:\R\Densplot\;
→ salvate (tasto destro del mouse, Salva con nome...) in questa cartella i file Densplot.txt e Densplot.csv;
→ dalla Console di R con File >> Apri script... aprite il file C:\R\Densplot\Densplot.txt nell’Editor di R.
 
I dati contenuti nel file Densplot.csv sono i valori di colesterolo in mg/dL misurati in soggetti di sesso maschile (M) e di sesso femminile (F), dei quali è stata registrata anche l’età (in anni), e sono stati strutturati in questo modo:
 

Sesso

Eta

Colest

M

13

172

F

14

132

M

14

176

F

15

156

F

16

190

……

……

……

 
Il contenuto del file Densplot.csv aperto con un editor di testo come il Blocco note di Windows vi apparirà così, con i nomi delle variabili nella prima riga, e i dati dei singoli casi nelle righe successive:
 
Sesso;Eta;Colest
M;13;172
F;14;132
M;14;176
F;15;156
F;16;190
...;...;...
 
Nel file Densplot.txt è contenuto del codice che vi consente di fare alcune cose molto interessanti. Per vederle una per una eseguite passo passo il codice dello script del primo esempio copiandolo dalla finestra dell’Editor di R nella quale lo avete aperto e incollandolo nella Console di R per eseguirlo (se non  viene eseguito premete il tasto invio):
→ importa i dati in R
mydata <- read.table("c:/R/Densplot/Densplot.csv", header=TRUE, sep=";")
→ visualizza i dati nella Console di R
mydata
→ traccia un istogramma semplice
hist(mydata$Colest, main = "Istogramma", xlab = "Colesterolo totale in mg/dL", ylab = "Frequenza")
→ traccia un istogramma semplice, colorato, con 20 classi
hist(mydata$Colest, breaks=20, col="red", main = "Istogramma", xlab = "Colesterolo totale in mg/dL", ylab = "Frequenza")
→ traccia l’istogramma e vi sovrappone la curva normale corrispondente, attenzione a digitare invio nella finestra della Console di R
x <- mydata$Colest
h<-hist(x, breaks=20, col="red", main = "Istogramma", xlab="Colesterolo totale in mg/dL", ylab = "Frequenza")
xfit<-seq(min(x),max(x),length=40)
yfit<-dnorm(xfit,mean=mean(x),sd=sd(x))
yfit <- yfit*diff(h$mids[1:2])*length(x)
lines(xfit, yfit, col="blue", lwd=2)
→ traccia il diagramma che rappresenta la distribuzione della densità delle osservazioni (kernel density plot), una modalità di rappresentazione superiore a quella del tradizionale istogramma
d <- density(mydata$Colest) # dati di densità
plot(d, main = "Istogramma", xlab="Colesterolo totale in mg/dL", ylab = "Densità")
→ kernel density plot colorato
d <- density(mydata$Colest)
plot(d, main = "Istogramma", xlab="Colesterolo totale in mg/dL", ylab = "Densità")
polygon(d, col="red", border="blue")
 
Il codice del primo esempio può essere interamente riutilizzato per le vostre specifiche esigenze, ricordando che dovete semplicemente:
→ sostituire il nome del file "c:/R/Densplot/Densplot.csv" con quello del vostro file;
→ controllare il separatore di campo usato ed eventualmente correggere opportunamente il punto e virgola in sep=";";
→ adattare il testo delle legende main=””, xlab=”” e ylab=””;
→ cambiare il numero delle classi in cui suddividere i dati (breaks=)
→ personalizzare i colori del riempimento (col="") e dei bordi (border="").
 
Eseguite ora passo passo il codice dello script del secondo esempio copiandolo dalla finestra dell’Editor di R e incollandolo nella Console di R per eseguirlo (se non  viene eseguito premete il tasto invio):
→ importa i dati in R
mydata <- read.table("c:/R/Densplot/Densplot.csv", header=TRUE, sep=";")
→ visualizza i dati nella Console di R
mydata
→ traccia kernel density plot
library(sm)
attach(mydata)
Sesso.f <- factor(Sesso, levels= c("M","F"), labels = c("Uomo", "Donna")) # crea la legenda
sm.density.compare(Colest, Sesso, xlab="Colesterolo totale in mg/dL", ylab="Densità") # traccia il grafico
title(main="Distribuzione del colesterolo totale per sesso") # aggiunge il titolo
colfill<-c(2:(2+length(levels(Sesso.f)))) # posiziona la legenda
legend(locator(1), levels(Sesso.f), fill=colfill) # posiziona la legenda
 
Come vedete il codice fa una cosa piuttosto interessante: traccia due kernel density plot indipendenti e sovrapposti per i soggetti di sesso maschile (M) e di sesso femminile (F). A questo punto posizionate il mouse nel punto in cui volete che compaia la legenda, e fate click con il tasto sinistro per farla comparire (attenzione: non può essere spostata, per cui se non siete soddisfatti dovete rieseguire l’intero esempio). Ovviamente anche in questo caso il codice può essere interamente riutilizzato personalizzandolo opportunamente, come indicato a proposito del primo esempio.
 
Diagrammi a scatola e baffi (box & whiskers plot)
 
→ create la cartella C:\R\Boxplot\;
→ salvate (tasto destro del mouse, Salva con nome...) in questa cartella i file Boxplot.txt e Boxplot.csv;
→ dalla Console di R con File >> Apri script... aprite il file C:\R\Boxplot\Boxplot.txt nell’Editor di R.
 
I dati contenuti nel file Boxplot.csv sono i valori di IgA che abbiamo visto in un esempio per iniziare. Eseguite passo passo il codice dello script copiandolo dalla finestra dell’Editor di R nella quale lo avete aperto e incollandolo nella Console di R per eseguirlo (se non  viene eseguito premete il tasto invio). Si tratta in definitiva di quattro sole righe di codice:
→ con la prima riga sono importati i dati
mydata <- read.table("c:/R/Boxplot/Boxplot.csv", header=TRUE, sep=";")
→ con la seconda riga sono tracciati i boxplot delle IgA per ciascuna diagnosi
boxplot(IgA~Diagnosi, data=mydata, main="IgA nelle malattie croniche del fegato",   xlab="Diagnosi clinica", ylab="IgA in mg/dL", notch=FALSE, col="yellow")
→ con la terza riga viene forzata una nuova finestra per il secondo grafico
windows()
→ con la quarta riga sono tracciati i boxplot delle IgA per ciascuna diagnosi con notch (incisura): se le incisure di due boxplot che non si sovrappongono la mediana è significativamente diversa
boxplot(IgA~Diagnosi, data=mydata, main="IgA nelle malattie croniche del fegato",  xlab="Diagnosi clinica", ylab="IgA in mg/dL", notch=TRUE, col="green")
(se iconizzate la finestra di questo secondo grafico, vedete sotto di esso la finestra con il primo)
 
Il fatto interessante è che in questo caso si utilizza una rappresentazione grafica per effettuare un test statistico (confronto tra mediane). Notate infine un “Warning message” che compare nella Console di R, che avverte che in alcuni casi le incisure sono uscite dai bordi della scatola (guardate i boxplot della CAH e della CPH). In questi casi il problema può essere superato o rinunciando a trarre delle conclusioni da questi casi o aumentando il numero delle osservazioni.
 
Diagrammi di distribuzione (scatter-plot) e grafici 3D
 
→ create la cartella C:\R\Scatterplot\;
→ salvate (tasto destro del mouse, Salva con nome...) in questa cartella i file Scatterplot.txt e Scatterplot.csv;
→ dalla Console di R con File >> Apri script... aprite il file C:\R\Scatterplot\Scatterplot.txt nell’Editor di R.
 
I dati contenuti nel file Scatterplot.csv hanno una struttura molto semplice:
 

GR

RGO

HB

HCT

HBA2

MCV

HBF

MCH

RDW

FERRO

4.9

97

13.3

40.6

1.8

82.8

0.6

27.1

17.3

106

4.66

81

10.8

34.3

2.6

73.6

1.6

23.2

21.5

148

5.43

57

11.5

36.1

4.8

66.5

2.5

21.1

21

104

5.41

63

10.8

39.7

2.5

73.4

1.8

20

19.9

74

4.94

60

10.4

32.3

1.4

65

0.7

21.1

23.7

17

….

….

….

….

….

….

….

….

….

….

 
Potete anche aprore il file Scatterplot.csv con un editor di testo come il Blocco note di Windows per vedere come è stato salvato fisicamente nel formato csv. Le variabili contenute nel file sono gli eritrociti (GR, in 10^12/L), la resistenza globulare osmotica (RGO, in %), l’emoglobina (HB, in g/dL), l’ematocrito (in %), l’emoglobina A2 (in %), il volume globulare medio (MCV, in fL), l’emoglobina F (in %), l’emoglobina corpuscolare media (MCH, in pg), l’ampiezza  della distribuzione dei globuli rossi (Red Distribution Width, in %) misurati in 643 soggetti che includevano soggetti sani e soggetti con beta-talassemia, con alfa-talassemia, con anemia sideropenica.
 
Eseguite passo passo il codice dello script copiandolo dalla finestra dell’Editor di R nella quale lo avete aperto e incollandolo nella Console di R per eseguirlo (se non  viene eseguito premete il tasto invio):
→ innanzitutto importiamo i dati
mydata <- read.table("c:/R/Scatterplot/Scatterplot.csv", header=TRUE, sep=";")
→ visualizziamo i dati
mydata
→ le seguenti due righe di codice tracciano uno scatterplot semplice
attach(mydata)
plot(HBA2, MCV, main="Esempio di Scatterplot", xlab="Emoglobina A2, % ", ylab="Volume globulare medio (MCV), fl ", pch=19)
→ come al punto precedente, ma cambia lo stile
attach(mydata)
plot(HBA2, MCV, main="Esempio di Scatterplot", xlab="Emoglobina A2, % ", ylab="Volume globulare medio (MCV), fl ", pch=1)
→ una sola riga di codice traccia lo scatterplot con la matrice completa di tutte le variabili
pairs(~GR+RGO+HB+HCT+HBA2+MCV+HBF+MCH+RDW+FERRO, data=mydata, main="Esempio di matrice di Scatterplot, tutte le variabili")
→ come al punto precedente, ma con matrice parziale
pairs(~GR+HBA2+MCV+MCH,data=mydata, main="Esempio di matrice di Scatterplot, solo alcune variabili")
→ altra rappresentazione, notare la nuova libreria car e il parametro diagonal = "none"
library(car)
scatterplot.matrix(~GR+HBA2+MCV+MCH, reg.line=lm, smooth=TRUE, span=0.5, diagonal = "none", data=mydata)
→ come al punto precedente, notare il parametro diagonal = "histogram"
library(car)
scatterplot.matrix(~GR+HBA2+MCV+MCH, reg.line=lm, smooth=TRUE, span=0.5, diagonal = "histogram", data=mydata)
→ altra rappresentazione, notare diagonal = "density" (il parametro diagonal ammette i seguenti valori: "boxplot", "histogram", "oned", "qqplot", "none")
library(car)
scatterplot.matrix(~GR+HBA2+MCV+MCH, reg.line=lm, smooth=TRUE, span=0.5, diagonal = "density", data=mydata)
→ questo scatterplot necessita libreria apposita (gclus), le variabili sono colorate e ordinate in base alla maggiore o minore correlazione evidenziata tra di loro
library(gclus)
dta <- mydata[c(1,2,3,4,5,6,7,8,9,10)] # recupera i dati dalle colonne
dta.r <- abs(cor(dta)) # calcola la correlazione
dta.col <- dmat.color(dta.r) # applica i colori
# riordina le variabili in modo che quelle meglio correlate siano vicine alla diagonale
dta.o <- order.single(dta.r)
cpairs(dta, dta.o, panel.colors=dta.col, gap=.5, main="Variabili colorate e ordinate in base alla correlazione")
→ scatterplot tridimensionale (3D), necessita libreria apposita
library(scatterplot3d)
attach(mydata)
scatterplot3d(HBA2,GR,MCV, main="3D Scatterplot")
→ scatterplot 3D a colori con linee verticali, necessita libreria apposita
library(scatterplot3d)
attach(mydata)
scatterplot3d(HBA2,GR,MCV, pch=16, highlight.3d=TRUE, type="h", main="3D Scatterplot")
→ spinning 3d scatterplot, necessita libreria apposita, potete “afferrarlo” facendo click con il tasto sinistro del mouse (tenetelo premuto senza rilasciarlo), e potete ruotarlo
library(rgl)
attach(mydata)
plot3d(HBA2,GR,MCV, col="red", size=3)
→ altro Spinning 3d Scatterplot, necessita libreria apposita, potete afferrarlo e ruotarlo - attenzione: quando è stato caricato R Commander fate di nuovo click sulla finestra della Console di R e premete invio
library(Rcmdr)
attach(mydata)
scatter3d(HBA2,GR,MCV)
 
Diagrammi di correlazione (correlogrammi)
 
I grafici che rappresentano il grado di correlazione tra due o più variabili (r di Pearson o altro) sono trattati nel capitolo correlazione (coefficienti di correlazione e correlogrammi) e nel relativo script, al quale si rimanda.
 
Grafici per l’identificazione degli outliers (valori erratici)
 
I grafici con cui è possibile rappresentare i dati evidenziando i possibili valori erratici, e che includono la possibilità, con un click del mouse, di ottenere la immediata identificazione del dato sospetto, sono trattati nella regressione lineare (regressione lineare semplice e regressione lineare multipla): li trovate nel relativo script al punto → identificazione degli outliers.
 
 
********************************
 
 
 
 
 
 
 

 

BuiltWithNOF
[Home] [Errori cognitivi] [Epistemologia] [Teorema di Bayes] [Decisioni mediche] [Le basi biochimiche]
[Analisi tradizionali] [Analisi genetiche] [Qualità in laboratorio] [Statistica e laboratorio]
[Storia delle medicina] [Download] [Link] [Bacheca] [FAQ] [Chi sono]
Cornice_265
iNRiM
Il linguaggio delle misure
it
LabTestOnline
The_Merck_Manual
Tavole metaboliche
IEoMet
Manuale Merck di diagnosi
e terapia
Tavole metaboliche
Errori congeniti del metabolismo
R
Corso base di statistica con R
new
Espressione dei risultati nel laboratorio di chimica clinica
Espressione dei risultati
Inprimopianochiaro

Senza dati di appropriatezza i tagli indiscriminati sono inevitabili

 Attualità in tema di eGFR:

 eGFR o creatinina nel siero?

 eGFR, indagine in Piemonte  [b]

 eGFR, riflessioni critiche  [b]

Esercizi di statistica

Teorema di Bayes e medicina basata sull’evidenza (EBM)

Informazione diagnostica e curve ROC

Gradi centigradi o gradi Celsius?

Download02

Programma di statistica Ministat (versione per Windows)

Programma di statistica Open Source R
(per Linux, Mac OS X e Windows)
OpenOffice, la suite Open Source (per Linux, Mac OS X e Windows)

Regressione lineare parametrica con quattro modelli inclusa la regressione di Deming

Calcolo degli intervalli di confidenza di sensibilità, specificità, valore predittivo, likelihood ratio

 I migliori  02  scelti per voi...

The Medical Biochemistry Page

Corso di Epidemiologia

FreeBooks4Doctors

Westgard QC

Le letture
consigliate
Book-03-june

         L’articolo da non perdere...    

E ora che i test genetici sono alla portata di tutti?
Con meno di mille euro è possibile comprare un test genetico su Internet: si manda un piccolo campione di cellule e poi si aspetta la risposta.
Ma... a che cosa serve la risposta?
Un dossier di Marika De Acetis,
lo trovate sul sito www.torinoscienza.it
I migliori libri del mese
 
Leonard Mlodinow
   La passeggiata dell’ubriaco. Le leggi scientifiche del caso.
Rizzoli Editore, 2009, pp. 294. ISBN: 17034081.
I migliori libri del mese
 
  Giovanni Federspil
   Logica clinica. I principi del metodo in medicina.
McGraw-Hill, 2004, pp. 368. ISBN: 88 386 2984-6.
ebooks...
new 
M. Besozzi
Errori cognitivi, probabilità e decisioni mediche. Applicazioni e utilità del teorema di Bayes nella diagnostica di laboratorio.
ebooks...
 
Wim P. Krijnen
Applied Statistics for Bioinformatics using R
 ebooks...
 
Mauss, Berg, Rockstroh, Sarrazin, Wedemeyer, at al.
Hepatology - A clinical textbook. Terza Edizione - 2012
ebooks...
 
Dennis A. Noe
The logic of Laboratory Medicine.