Sto provando a tracciare sottoinsiemi di dati utilizzando il diagramma di sfaccettatura. Si tratta di diagrammi di 2 colonne x4 righe. Prima colonna con valori compresi tra 120 e 150 e seconda colonna con valori compresi tra 180 e 250 e le variabili vengono assegnate come Minore o Maggiore nel file di dati. Sto riscontrando problemi con l'aggiunta di etichette specifiche ('120 < = simbolo greco (alpha) < = 150', '180 < = simbolo greco (alpha) < = 250) alle variabili di colonna ("Lesser", "Greater") . Ho provato a fare come:Etichettatura facet con R
require(graphics)
library(ggplot2)
hp <- ggplot2(data) + ....
xlow <- paste("120 <", expression(alpha), " < 150")
xhi <- paste("180 <", expression(alpha), " < 250")
mf_labeller <- function(var, value){
value <- as.character(value)
if (var=="regime") {
value[value=="Lesser"] <- xlow
value[value=="Greater"] <- xhi
}
return(value)
}
(hp %+% data) + facet_grid(param~regime, scales="free", labeller=mf_labeller)
ottengo "Errore di valore == 'Grande': il confronto non sono ammessi per le espressioni". Ho provato a forzare anche i dati. Se faccio l'etichettatura in alcun modo:
data2 <- transform(data, regime = factor(regime, levels=c("Lesser", "Greater"), labels=c(expression(paste("120 <", alpha," < 150")), expression("180 < alpha < 250"))))
ottengo l'intera espressione alla lettera, e non le trame desiderati. Potrei mancare qualcosa. Qualsiasi aiuto è molto apprezzato !! Grazie in anticipo ..
I brani del mio campione è:
regime,param,line,XX,Var,sner
Lesser,Rise,VII,AA,4.968624,0.1275248
Lesser,Rise,VII,BB,3.719405,0.08470305
Lesser,Rise,VII,CC,7.608773,0.177848
Lesser,Rise,VII,DD,9.874395,0.1367159
Lesser,Text,VII,AA,4.968624,0.1275248
Lesser,Text,VII,BB,3.719405,0.08470305
Lesser,Text,VII,CC,7.608773,0.177848
Lesser,Text,VII,DD,9.874395,0.1367159
Lesser,Chant,VII,AA,0.1771826,0.186758
Lesser,Chant,VII,BB,0.3611497,0.5484656
Lesser,Chant,VII,CC,0.7719002,0.8864444
Lesser,Chant,VIII,DD,1.829022,0.2639881
Greater,Rise,VII,AA,4.968624,0.1275248
Greater,Rise,VII,BB,3.719405,0.08470305
Greater,Rise,VII,CC,7.608773,0.177848
Greater,Rise,VII,DD,9.874395,0.1367159
Greater,Text,VII,AA,4.968624,0.1275248
Greater,Text,VII,BB,3.719405,0.08470305
Greater,Text,VII,CC,7.608773,0.177848
Greater,Text,VII,DD,9.874395,0.1367159
Greater,Chant,VII,AA,0.1771826,0.186758
Greater,Chant,VII,BB,0.3611497,0.5484656
Greater,Chant,VII,CC,0.7719002,0.8864444
Greater,Chant,VIII,DD,1.829022,0.2639881
e il codice che ho usato: ho scritto in precedenza espressione nel modo sbagliato qui nel post, ma ho usato il corretto nel codice .
x <- read.table("sample.csv", header=T, sep=',')
require(graphics)
library(ggplot2)
ppi <- 300
png("figure.png", width=6*ppi, height=6*ppi, res=ppi)
hp <- ggplot(data=x,aes(x=XX, y=Var, colour=line, group = line)) + geom_errorbar(aes(ymin=Var-sner, ymax=Var+sner, colour=line), width=.3) + geom_line(aes(ymax=Var+sner), size=0.7) + geom_point(aes(ymax=Var+sner), shape=21, size=2,fill="white") + theme_bw() + theme(axis.text.x = element_text(angle=90,vjust=0.25), panel.grid.minor=element_blank(), panel.grid.major=element_blank(), panel.background =element_blank(), legend.position="none") + scale_colour_hue(l=40)
xlow <- expression(paste("120 <",alpha," < 150"))
xhi <- expression(paste("180 <", alpha," < 250"))
.. earlier code block as alternative here...
data2 <- transform(x, regime = factor(regime, levels=c("Lesser", "Greater"), labels=c(bquote(120<.(alpha)~phantom()<150), bquote(180<.(alpha)~phantom()<250))
(hp %+% data2) + facet_grid(param~regime, scales="free", labeller=label_bquote)
ho provato come in precedenza con mf_labeller troppo .. Grazie in anticipo
Grazie per la risposta. Ma anche questo non sembra funzionare nel mio caso. Anche se il codice viene eseguito ma non viene generato alcun grafico di output. – user1818565
Sigh. Ovviamente non viene generato alcun output. Non hai fornito alcun codice o dati. Noterai che spero che Brian Diggs abbia usato la strategia phantom() per far funzionare il diagramma. –