2015-03-19 14 views
7

Desidero aggiungere un carattere Unicode che ha due lettere come pedici alla mia legenda trama in R. Il carattere è un r con un accento breve (ř) e le due lettere sono i e j.Carattere Unicode con pedice

Ho già esaminato questa domanda: Unicode character with superscript e ho cercato di adattare le risposte al mio problema.

Ecco cosa ho provato:

plot(1,pch=NA,ylab="",xlab="",axes=F) 
legend("top",legend=paste("1-","\u{0159}"),bty ="n",bg = "white",cex=2) 
legend("center",legend=paste("1-","\u{0159}","\u{0069}","\u{006A}"),bty="n",bg = "white",cex=2) 
legend("bottomleft",legend=expression("1-"*"\u0159"["\u0069"*"\u006A"]),bty="n",bg = "white",cex=2) 
legend("bottomright", legend = quote("1-" *"\u0159"["\u0069"*"\u006A"]),bty="n",bg = "white",cex=2) 

La trama risultante può essere trovata sotto

enter image description here

Sia la lettera Unicode e l'indice funzionano bene da soli, ma non insieme. paste() con qualsiasi combinazione di [] restituisce un errore, ma penso che questo sia da aspettarsi poiché pasta non può gestire [] per gli indici.

Il sito FAQ sul CRAN potrebbe dare un suggerimento Sto usando Windows, ma non sono sicuro come implementare questa:

3,6 Non vedo i caratteri con accenti alla console R, ad esempio nel testo.

È necessario specificare un carattere in Rconsole (vedere Q5.2) che supporta la codifica in uso. Questo era un problema nelle versioni precedenti di Windows, ma ora è difficile trovare un font che non lo sia.

Il supporto per questi caratteri all'interno di Rterm dipende dall'ambiente (la finestra del terminale e la shell, comprese le impostazioni di locale e codepage) all'interno del quale viene eseguito, nonché il carattere utilizzato dalla finestra del terminale. Questi sono in genere sulle impostazioni DOS legacy e devono essere modificati.

+1

utilizzando la risposta si è collegato al, questo funziona per me 'plot.new() ; text (0.5, 0.7, labels = quote ("1 -" * '\ u {0159}' [ij])) '. 3 e 4 nel tuo esempio funzionano anche per me – rawr

+0

@rawr Sfortunatamente, la tua soluzione non ha funzionato per me. Sto usando RStudio quindi l'ho provato anche usando la semplice R, ma anche lì nessuna delle versioni funzionava. –

+0

Nadja, quale sistema operativo stai usando, come gli ultimi due dei tuoi esempi e il codice rawr, entrambi rendono come previsto su ubuntu 14.04, Rv3.1.3 – user20650

risposta

3

Ha a che fare con il sistema locale, come visto ad es. se si tenta

# intToUtf8(345) 
# [1] "ř" 
# iconv(intToUtf8(345), "utf-8", localeToCharset()) 
# [1] "r" 

Questo dovrebbe risolvere il problema (io ho usato Repubblica ma anche altri locali probabilmente funzionerà ugualmente):

Sys.setlocale("LC_CTYPE", "czech") 
# [1] "Czech_Czech Republic.1250" 
text(..., labels = quote("\u{0159}"[ij])) 
+0

Grandi cose, applausi. Avevo provato a impostare il locale in tedesco e il francese senza gioia. ..czech è la risposta! – user20650

+0

@ user20650 Lol sì, è la prima lingua che mi è venuta in mente che abbia questo personaggio, anche se sono sicuro che ce ne saranno molti. Hai idea del perché funzioni senza modificare le impostazioni locali quando non ci sono pedici implicati, ad esempio in 'quote (" \ u {0159} ")'? – konvas

+0

Non è un indizio, lo trovo anche strano.Quindi forse la vera risposta è * non usare Windows * – user20650

Problemi correlati