Forum

Nome Utente:
Password:
Riconoscimi automaticamente
 Tutti i Forum
 MolecularLab
 Bioinformatica
 didascalia grafico
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi Aggiungi ai Preferiti Aggiungi ai Preferiti
Cerca nelle discussioni
I seguenti utenti stanno leggendo questo Forum Qui c'è:

Aggiungi Tag Aggiungi i tag

Quanto è utile/interessante questa discussione:

Autore Discussione  

Dimo
Nuovo Arrivato



25 Messaggi

Inserito il - 22 maggio 2012 : 15:09:51  Mostra Profilo  Visita l'Homepage di Dimo Invia a Dimo un Messaggio Privato  Rispondi Quotando
ciao
c'è per caso un modo per inserire didascalie nei grafici con R e magari colorare determinate aree del grafico?
se non con R c'è qualche programma che mi consigliereste per farlo?
grazie

chick80
Moderatore

DNA

Città: Edinburgh


11491 Messaggi

Inserito il - 22 maggio 2012 : 19:23:04  Mostra Profilo  Visita l'Homepage di chick80 Invia a chick80 un Messaggio Privato  Rispondi Quotando
Sì, per il testo prova con

text o mtext

per colorare il grafico puoi usare

rect o polygon

Sei un nuovo arrivato?
Leggi il regolamento del forum e presentati qui

My photo portfolio (now on G+!)
Torna all'inizio della Pagina

Dimo
Nuovo Arrivato



25 Messaggi

Inserito il - 23 maggio 2012 : 18:23:28  Mostra Profilo  Visita l'Homepage di Dimo Invia a Dimo un Messaggio Privato  Rispondi Quotando
faccio il plot e poi do il comando text
text(coordinata.x, coordinata.y,"messaggio da inserire")
ma non mi inserisce nulla
come mai?
Torna all'inizio della Pagina

chick80
Moderatore

DNA

Città: Edinburgh


11491 Messaggi

Inserito il - 23 maggio 2012 : 18:52:25  Mostra Profilo  Visita l'Homepage di chick80 Invia a chick80 un Messaggio Privato  Rispondi Quotando
strano... a me funziona

Ad es:

> plot(1:10, 1:10)
> text(2, 4, "prova")

Sei un nuovo arrivato?
Leggi il regolamento del forum e presentati qui

My photo portfolio (now on G+!)
Torna all'inizio della Pagina

Dimo
Nuovo Arrivato



25 Messaggi

Inserito il - 23 maggio 2012 : 19:37:12  Mostra Profilo  Visita l'Homepage di Dimo Invia a Dimo un Messaggio Privato  Rispondi Quotando
ah ok
il problema era che volevo posizionarla sotto l'asse x e mettevo 0 come coordinata y
faccio prima a dirti cosa voglio fare :D

voglio scrivere sotto l'asse x, ciò che è scritto nel primo grafico di questa pagina (media più sigma ecc.:
http://www.lorenzoazzalini.it/prob/normale.html

in più c'è un modo per non far apparire i numeri sugli assi?
grazie per la disp :)
Torna all'inizio della Pagina

chick80
Moderatore

DNA

Città: Edinburgh


11491 Messaggi

Inserito il - 23 maggio 2012 : 20:03:44  Mostra Profilo  Visita l'Homepage di chick80 Invia a chick80 un Messaggio Privato  Rispondi Quotando
Ah OK!

In quel caso fai il plot senza assi e poi aggiungi gli assi a posteriori.

Ad es. per riprodurre il grafico di quella pagina io farei:


# Creiamo una sequenza di valori da -5 a 5 con step 0.01
x <- seq(-5, 5, 0.01)
# Calcoliamo la distribuzione normale con media=0 e sd=1 a quei valori
y <- dnorm(x, 0, 1)

# Plot senza assi
# xaxt/yaxt sta per "x (o y) axis type", n sta per "none"
plot(x, y, t="l", xaxt="n", yaxt="n", xlab="y", ylab="f(y)")
# Creiamo le linee verticali tratteggiate (line type=2) a -1, 0, 1
pos <- c(-1, 0, 1)
segments(pos, -1, pos, dnorm(pos, 0, 1), lty=2)
# Alternativamente potevamo usare abline, 
# ma sarebbero arrivate fino in alto
# Ad es. abline(v=c(-1, 0, 1), lty=2)

# Creiamo l'asse x usando axis
# Il primo parametro è l'asse (1 in basso, 2 a sx, 3 in alto, 4 a dx)
# at specifica dove mettere i valori e labels le etichette
# expression ci permette di scrivere (tra le altre cose) lettere greche!
axis(1, at=pos, labels=c(expression(sigma - mu), 
                         expression(mu), expression(sigma + mu)))


Consiglio di leggere (io l'ho addirittura stampato, per convenienza) l'help del comando par (?par). Ci sono moltissimi parametri grafici che ti permettono di fare il grafico esattamente come ti serve.

Inoltre consiglio vivamente l'uso di RStudio come interfaccia per R, è ottimo.

Sei un nuovo arrivato?
Leggi il regolamento del forum e presentati qui

My photo portfolio (now on G+!)
Torna all'inizio della Pagina

Dimo
Nuovo Arrivato



25 Messaggi

Inserito il - 24 maggio 2012 : 14:00:56  Mostra Profilo  Visita l'Homepage di Dimo Invia a Dimo un Messaggio Privato  Rispondi Quotando
grande!
grazie mille davvero

ascolta che c'è un modo per aumentare la dimensione delle didascalie tipo m-sigma ecc.?
mi serve per altri grafici
Torna all'inizio della Pagina

kORdA
Utente Attivo

newkORdA

Prov.: Milano
Città: Monza


1303 Messaggi

Inserito il - 24 maggio 2012 : 15:55:21  Mostra Profilo  Visita l'Homepage di kORdA  Clicca per vedere l'indirizzo MSN di kORdA Invia a kORdA un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da chick80


# Creiamo l'asse x usando axis
# Il primo parametro è l'asse (1 in basso, 2 a sx, 3 in alto, 4 a dx)
# at specifica dove mettere i valori e labels le etichette
# expression ci permette di scrivere (tra le altre cose) lettere greche!
axis(1, at=pos, labels=c(expression(sigma - mu), 
                         expression(mu), expression(sigma + mu)))




Mi ricordo una roba macchinosa del genere (e per questo ricorro al piu' povero GnuPlot). Gia' che siamo in topic vorrei chiederti una cosa chick. Un po' di tempo fa mi serviva zoomare un plot su un range di valori ben definito (volevo eliminare tutto il vuoto cosmico che stava a fondo scala per intenderci); inoltre volevo aggiungere i minor tics sugli assi. Ho cercato un po' tra la documentazion di par senza successo, ho gettato la spugna e sono tornato a gnuplot. Hai qualche esempio di codice? Avevo trovato un post a riguardo ma usavano dei package esterni, e mi sembra strano che in R bisogna installare librerie esterne solo per disegnare dei minor tics o_O

http://www.linkedin.com/in/dariocorrada
Torna all'inizio della Pagina

chick80
Moderatore

DNA

Città: Edinburgh


11491 Messaggi

Inserito il - 25 maggio 2012 : 17:24:45  Mostra Profilo  Visita l'Homepage di chick80 Invia a chick80 un Messaggio Privato  Rispondi Quotando
Citazione:
ascolta che c'è un modo per aumentare la dimensione delle didascalie tipo m-sigma ecc.?
mi serve per altri grafici


Usa il parametro cex.axis

Ad es.

axis(1, at=pos, labels=c(expression(sigma - mu), 
                         expression(mu), expression(sigma + mu)), cex.axis=1.5)


Citazione:
Un po' di tempo fa mi serviva zoomare un plot su un range di valori ben definito


Usa i parametri xlim e ylim di plot

Ad es:

plot(x, y, xlim=c(0, 10), ylim=c(150, 180))

Citazione:
Inoltre volevo aggiungere i minor tics sugli assi

O usi minor.ticks del pacchetto hMisc, oppure chiami due volte axis...

In generale io esporto il plot in PDF o in svg e poi me lo spapocchio in Inkscape quindi non mi metto troppo ad abbellirlo in R.
Oppure probablimente ggplot2 ha delle funzioni apposite (ma non lo amo molto)

Sei un nuovo arrivato?
Leggi il regolamento del forum e presentati qui

My photo portfolio (now on G+!)
Torna all'inizio della Pagina

Dimo
Nuovo Arrivato



25 Messaggi

Inserito il - 26 maggio 2012 : 13:53:20  Mostra Profilo  Visita l'Homepage di Dimo Invia a Dimo un Messaggio Privato  Rispondi Quotando
ok grazie
sapresti suggerirmi come funziona il comando polygon o rect
tipo per colorare un area tra 0 e 1 di una normale

tipo con rect io faccio rect(0,0,1,dnorm(x,0,1))
ma mi esce una schifezza :D
Torna all'inizio della Pagina

kORdA
Utente Attivo

newkORdA

Prov.: Milano
Città: Monza


1303 Messaggi

Inserito il - 26 maggio 2012 : 18:37:58  Mostra Profilo  Visita l'Homepage di kORdA  Clicca per vedere l'indirizzo MSN di kORdA Invia a kORdA un Messaggio Privato  Rispondi Quotando
Citazione:
Inoltre volevo aggiungere i minor tics sugli assi
O usi minor.ticks del pacchetto hMisc, oppure chiami due volte axis...

In generale io esporto il plot in PDF o in svg e poi me lo spapocchio in Inkscape quindi non mi metto troppo ad abbellirlo in R.
Oppure probablimente ggplot2 ha delle funzioni apposite (ma non lo amo molto)



ok, tengo R come seconda scelta per plottare (anche se Gnuplot e' un po' scarso per disegnare i boxplot)

http://www.linkedin.com/in/dariocorrada
Torna all'inizio della Pagina

chick80
Moderatore

DNA

Città: Edinburgh


11491 Messaggi

Inserito il - 27 maggio 2012 : 19:00:58  Mostra Profilo  Visita l'Homepage di chick80 Invia a chick80 un Messaggio Privato  Rispondi Quotando
Citazione:
tipo con rect io faccio rect(0,0,1,dnorm(x,0,1))
ma mi esce una schifezza :D


E sì! Perchè rect fa un rettangolo e tu non vuoi un rettangolo!
poly invece dovrebbe funzionare. Ad es.


x.fill <- seq(0, 1, 0.01)
y.fill <- dnorm(x.fill, 0, 1)
# Mettiamo gli estremi a 0 per riempire fino alla base
y.fill[1] <- 0
y.fill[length(y.fill)] <- 0
polygon(x.fill, y.fill, col=rgb(0, 0.2, 1, .5))


ovviamente puoi usare un valore diverso da 0 a seconda dell'effetto voluto

Sei un nuovo arrivato?
Leggi il regolamento del forum e presentati qui

My photo portfolio (now on G+!)
Torna all'inizio della Pagina

Dimo
Nuovo Arrivato



25 Messaggi

Inserito il - 28 maggio 2012 : 14:06:18  Mostra Profilo  Visita l'Homepage di Dimo Invia a Dimo un Messaggio Privato  Rispondi Quotando
grazie ancora ;)
Torna all'inizio della Pagina
  Discussione  

Quanto è utile/interessante questa discussione:

 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi Aggiungi ai Preferiti Aggiungi ai Preferiti
Cerca nelle discussioni
Vai a:
MolecularLab.it © 2003-18 MolecularLab.it Torna all'inizio della Pagina