2016-04-11 5 views
6

Come posso stampare simboli unicode come WOMENS SYMBOL o MENS SYMBOL o altri simboli da quel codice? Oltre ad impostare una famiglia di caratteri che contiene quei personaggi, R pende sul mio sistema * quando si utilizza il carattere punto pch così:Come tracciare i caratteri unicode a 32 bit? R 3.2.2 si blocca su Windows/RStudio

plot(0, type="n") 
points(1, .5, pch=-0xfffdL) 
# works 
points(1, -.5, pch=-0x1f6b9L) 
# R hangs 

Come il doc states,

dove supportato dal sistema operativo , i valori negativi specificano un punto Unicode , quindi ad es. -0x2642L è un 'segno maschile' e -0x20ACL è l'Euro.

* I miei sessionInfo():

R version 3.2.2 (2015-08-14) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows 7 x64 (build 7601) Service Pack 1 

locale: 
[1] LC_COLLATE=German_Germany.1252 LC_CTYPE=German_Germany.1252 LC_MONETARY=German_Germany.1252 LC_NUMERIC=C     
[5] LC_TIME=German_Germany.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

loaded via a namespace (and not attached): 
[1] rsconnect_0.3.79 tools_3.2.2 

Grazie per l'aiuto & il controllo sul sistema in anticipo.


Modifica: Windows si blocca quando uso RStudio 0.99.879 con il dispositivo grafico RStudio. Se utilizzo esplicitamente lo dev.new(noRStudioGD=T), ricevo un errore di smiliar come menzionato nei commenti: "Errore in plot.xy (xy.coords (x, y), type = type, ...): input non valido '🚹' in 'utf8towcs' ". Per ora, userò l'opzione di fallback PNG come menzionato da @ 42-.

+1

Ho R 3.1.2 x86_64-W64-mingw32/x64 (64-bit) e ottengo 'Errore nella trama .xy (xy, type, ...): input non valido '🚹' in 'utf8towcs'' per '> plot (x, pch = -0x1f6b9L)' – Marichyasana

risposta

2

Non ho una risposta, ma ci sono alcune versioni di pubblico dominio in formato PNG:

enter image description here enter image description here

Dovreste essere in grado di compattare queste e stampare nei punti desiderati: using custom images instead of standard shapes for R line chart markers

library(png) 
img <- readPNG('~/Downloads/mens_room_clip_art_9332/Mens_Room_clip_art_small.png') 
str(img) 
# num [1:100, 1:100, 1:4] 1 1 1 1 1 1 1 0 0 0 ... 
require(grid) 
#Loading required package: grid 
male <- rasterGrob(img) 
img <- readPNG('~/Downloads/ladies_room_clip_art_16926/Ladies_Room_clip_art_small.png') 
female <- rasterGrob(img) 

df = data.frame(x=rep(1:4,2), y=c(1,1,2,4,6.5,5,5.5,4.8), g=rep(c("s","m"),each=4)) 
p = ggplot(df, aes(x, y, group=g)) + 
    geom_line() + 
    theme_bw() 

a=0.2 
for (i in rownames(df[df$g=="s",])) { 
    p = p + annotation_custom(male, df[i,"x"]-a,df[i,"x"]+a,df[i,"y"]-a,df[i,"y"]+a) 
} 

b=0.2 
for (i in rownames(df[df$g=="m",])) { 
    p = p + annotation_custom(female, df[i,"x"]-b,df[i,"x"]+b,df[i,"y"]-b,df[i,"y"]+b) 
} 
png();print(p);dev.off() 

enter image description here

Ho anche preso le immagini e incollato in Gimp e scalata a 24 pixel:

enter image description hereenter image description here

+0

Grazie. Anche il PNG è stata la mia idea di fallback. Sembra che dovrei usarlo. – lukeA