2012-05-20 21 views
10

Sono relativamente nuovo a ggplot2 e non riesco ad aggiungere etichette appropriate ai contorni.R: Come etichettare contorni specifici usando direct.label

Utilizzando l'esempio vulcano classico, posso aggiungere etichette per la trama di contorno predefinito:

library(plyr) 
library(ggplot2) 
library(directlabels) 
library(reshape) 
volcano<-melt(volcano) 
v<-ggplot(volcano, aes(x,y,z=z)) 
e<-v + stat_contour(aes(colour=..level..)) 
direct.label(e) 

Nell'esempio di cui sopra, le etichette sono aggiunti in modo appropriato, ma le cose si complicano se cerco di specificare il mio punti di rottura per i contorni:

e<-v + stat_contour(aes(breaks=c(160, 170, 180), colour=..level..)) 
direct.label(e) 

Ora, i contorni sono specificati dalle pause che ho fornito, ma le etichette appaiono ancora per tutti i contorni di default. Come faccio a tracciare solo le etichette per i contorni grafici?

Un problema correlato, come avrei dovuto tracciare le etichette per i livelli di contorno non inclusi nell'impostazione predefinita? Dì una pausa di 165:

e<-v + stat_contour(aes(breaks=c(165), colour=..level..)) 
direct.label(e) 

Grazie per qualsiasi aiuto!

+2

È importante notare che direct.label() è nel pacchetto directlabels. –

+0

Ya, grazie per avermelo fatto notare. –

+0

Devo postare nuovamente questa domanda o la gente continua a guardarla? –

risposta

3

Non potevo sopportare di vedere una vecchia domanda senza risposta con una soluzione così semplice.

Il problema semplice era la mappatura all'interno di stat_contour(). La chiamata dovrebbe essere:

v<-ggplot(volcano, aes(x=X1,y=X2,z=value)) # specify the mapping properly 
e<-v + stat_contour(aes(colour=..level..), breaks=c(160, 170, 180)) 
direct.label(e) 

Con le pause non inclusi nella mappatura AES, e il colour=..level.. inclusi.

enter image description here

+4

Sembra non funzionare con 'ggplot2' versione'> 2.0.0'. – jaimedash

Problemi correlati