2016-04-11 6 views
6

Wie kann ich Unicode-Symbole wie die WOMENS SYMBOL oder die MENS SYMBOL oder andere Symbole aus diesem Codeblock plotten? Neben der Schriftfamilie einstellen, die diese Zeichen enthält, hängt R auf meinem System *, wenn der Punkt Charakter pch wie die Verwendung von:Wie 32-Bit-Unicode-Zeichen plotten? R 3.2.2 hängt unter Windows/RStudio

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

Als doc states,

Wo durch das Betriebssystem unterstützt , negative Werte geben einen Unicode-Code Punkt an, also z -0x2642L ist ein "männliches Zeichen" und -0x20ACL ist der Euro.

* My 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 

Vielen Dank für Hilfe & auf Ihrem System im Voraus zu überprüfen.

Bearbeiten: Windows hängt, wenn ich RStudio 0.99.879 mit dem RStudio-Grafikgerät verwenden. Wenn ich explizit dev.new(noRStudioGD=T) verwende, dann bekomme ich einen ähnlichen Fehler wie in den Kommentaren erwähnt: "Fehler in plot.xy (xy.coords (x, y), type = type, ...): ungültige Eingabe '🚹' in "utf8towcs" ". Fürs Erste verwende ich die PNG-Fallback-Option wie in @ 42- erwähnt.

+1

Ich habe R 3.1.2 x86_64-w64-mingw32/x64 (64-bit) und ich 'Fehler in Handlung .xy (xy, type, ...): ungültige Eingabe '🚹' in 'utf8towcs'' für '> plot (x, pch = -0x1f6b9L)' – Marichyasana

Antwort

2

ich keine Antwort haben, aber es gibt einige Public Domain Versionen im PNG-Format:

enter image description here enter image description here

sollten Sie in der Lage sein, diese zu schrumpfen und an gewünschten Stellen drucken: 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

Ich habe auch die Bilder kopiert und in Gimp und skaliert auf 24 Pixel:

enter image description hereenter image description here

+0

Danke. PNG war auch meine Fallback-Idee. Scheint, ich muss das benutzen. – lukeA