2015-09-22 12 views
6

Ho aggiornato il mio sistema e reinstallato R, e ora i miei diagrammi X-11 standard non hanno l'anti-aliasing: appaiono frastagliati e il font sembra scadente.Ottenere i grafici anti-alias con R su Ubuntu

Mi sembra di ricordare un problema come questo in passato, ma non ricordo cosa ho fatto al riguardo.

alcune altre informazioni:

  • qplot emerge anche non-anti-aliasing
  • tramando per un dispositivo png produce uscita non-anti-aliasing e
  • tramando per un dispositivo pdf, tuttavia , produce un bell'effetto anti-aliasing output

Un'altra cosa: ho eseguito questa versione di R/Ubuntu per un po 'ora, ac ouple mesi o giù di lì. Non so se questo problema di tracciamento sia iniziato immediatamente con la nuova installazione di R, o se dopo avessi fatto qualcosa per romperlo. Non ricordo di aver notato la mancanza di anti-aliasing prima, ma potrei non aver prestato attenzione o fare molti complotti.

Qualcuno sa quale è la correzione? Attualmente sto usando R 3.2.1, compilato dal sorgente, con Ubuntu 14.04.3 LTS.

Alcune altre cose. Dopo il the discussion here ho provato ad installare Cairo, ma non è riuscito. Inoltre, sono stato in grado di ottenere trame non anti-alias in R/linux senza installare Cairo in passato, e preferirei non installare cose extra se non necessario.

Qui sono i miei X11.options():

$display 
[1] "" 

$width 
[1] NA 

$height 
[1] NA 

$pointsize 
[1] 12 

$bg 
[1] "transparent" 

$canvas 
[1] "white" 

$gamma 
[1] 1 

$colortype 
[1] "true" 

$maxcubesize 
[1] 256 

$fonts 
[1] "-adobe-helvetica-%s-%s-*-*-%d-*-*-*-*-*-*-*" 
[2] "-adobe-symbol-medium-r-*-*-%d-*-*-*-*-*-*-*" 

$family 
[1] "sans" 

$xpos 
[1] NA 

$ypos 
[1] NA 

$title 
[1] "" 

$type 
[1] "Xlib" 

$antialias 
[1] "default" 
+0

Ho anche questo problema. So che esiste una soluzione, perché quando installo la libreria "rmarkdown" e uso 'render' per elaborare il mio file knitr, allora produce graziosi grafici con caratteri anti-aliasing * e *. Tuttavia, sto ancora cercando di capire che tipo di magia usa per realizzare questo. A proposito, sto solo lavorando sui tipi di carattere: posso ottenere righe con anti-aliasing ad es. 'Ggsave (file = "filename.png", type = "cairo-png")' ... – Metamorphic

risposta

2

Io corro R 3.4.0 e ottengo le linee anti-alias, "punti", e la trama assi per impostazione predefinita per X11() e png() dispositivi.

Tuttavia, ci sono alcuni pacchetti "Microsoft fonts" che devono essere installati sul mio sistema per ottenere il testo anti-alias. Non posso parlare per Ubuntu, ma su Arch Linux i nomi dei pacchetti erano "ttf-ms-fonts" e "fontconfig-ttf-ms-fonts", entrambi in AUR. Una buona ricerca su Google dovrebbe generare pacchetti simili per il tuo sistema.

Ecco alcuni grafici prodotti dal dispositivo png() con e senza "ttf-ms-fonts" installati.

  • senza "ttf-ms-fonts":

brownian-motion-no-msfonts

  • Con "ttf-ms-fonts":

brownian-motion-with-msfonts

spero è possibile vedere che le linee e circl in entrambi i grafici l'anti-alias, ma solo la seconda trama ha un testo anti-alias.

Ecco il codice che ho usato per produrre le trame di cui sopra:

set.seed(1); 
brownian=cumsum(runif(1e3,min=-1)); 
png("brownian-no-msfonts.png",height=400); 
par(cex=1.3); 
plot(brownian,ylim=c(-10,15), 
    ylab="Position",xlab="Time",main="Brownian Motion"); 
lines(brownian+7); 
dev.off() 

Ho confermato che ho bisogno di entrambi "ttf-ms-fonts" e "fontconfig-ttf-ms-fonts" (il Quest'ultimo penso che configura determinati caratteri da utilizzare di default) per ottenere il testo anti-alias in R, anche se per esempio è necessario solo il primo pacchetto ottenere il testo anti-alias in Firefox.

Tuttavia, ho giocato con il pacchetto "knitr" e ho notato che se compilo i miei documenti usando "render" dal pacchetto "rmarkdown", allora può produrre trame anti-alias con o senza " pacchetto ttf-ms-fonts "installato. Non ho capito come funziona. So che gestisce Pandoc che produce HTML con caratteri incorporati, ma non sono sicuro che il pacchetto "rmarkdown" includa i font, o se abbia un'idea migliore di dove trovare quelli buoni sul mio sistema.

Mi sento superficiale per passare il tempo a questo, ma qualunque cosa.