2015-02-05 2 views
1

Я пытаюсь добавить юникод текст к изображению с помощью layer_text(), но она не работает, если я не поставить текст в качестве константы:Добавление текста Юникод в ggvis сюжет

x = data.frame(a=c(1,2),b=c("\\u2799","\\u2794")) 

# This one works 
x %>% ggvis(~a) %>% layer_text(text := "\\u2794") 

# Now does not work 
x %>% ggvis(~a) %>% layer_text(text := ~b) 

# Nor this way 
x = data.frame(a=c(1,2),b=c("\u2799","\u2794")) 
x %>% ggvis(~a) %>% layer_text(text := ~b) 

Есть ли решение?

Отрывок из моей sessionInfo связанные с локалью:

R version 3.1.2 (2014-10-31) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 

locale: 
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C       
[5] LC_TIME=English_United States.1252 

ответ

1

Running следующий код (через RStudio) работает для меня:

library(dplyr) 
library(ggvis) 
x <- data.frame(a=c(1, 2), b=c("\u2799", "\u2794")) 
x %>% ggvis(~a) %>% layer_text(text := ~b) 

Это также работает для меня:

y <- data.frame(a=c(1, 2), b=c("➙", "➔")) 
y %>% ggvis(~a) %>% layer_text(text := ~b) 

Вот скриншот:

screenshot

Вот соответствующий отрывок из моего sessionInfo()

# R version 3.1.2 (2014-10-31) 
# Platform: x86_64-pc-linux-gnu (64-bit) 
# locale: 
# [1] LC_CTYPE=en_US.UTF-8 
# other attached packages: 
# [1] ggvis_0.4  dplyr_0.3.0.2 

Так очевидный вопрос: чем отличается о вашей установке?

+0

Кажется, это проблема локали, хотя я не понимаю, почему (я могу без проблем печатать строки с указанными выше символами). – vsalmendra

+0

Что относительно 'plot (c (1, 2), c (1, 1), pch = c (" ➙ "," ➔ "))'? Если он работает в базовой графике, но не в 'ggvis', то, возможно, это ограничение реализации windows' ggvis' (или бэкэнд [vega] (https://github.com/trifacta/vega/))? – drammock

+0

Он работает! При использовании с data.frame следует избегать преобразования в факторы, но это легко решить. Я напишу ошибку. Благодаря! – vsalmendra