2017-01-15 16 views
5

Tôi muốn có các ký tự Unicode xuất hiện trong cốt truyện của mình, như một phần của chuỗi hỗn hợp, ví dụ: ρ=0.84 trong đó 0,84 được lưu trong một biến, giả sử cor.value.ggplot unicode ký tự không có Cairo?

Thực tế này loại trừ các giải pháp như expression hoặc bquote (đề xuất here). Tôi không biết nếu họ sẽ làm việc một mình, nhưng cố gắng kết hợp chúng với một giá trị của biến thông qua paste là một vấn đề. Cách duy nhất tôi có thể làm cho nó hoạt động là bằng cách sử dụng biểu tượng unicode trong nguồn của tôi. Nó thậm chí còn xuất hiện trên cốt truyện trong R Studio.

Nhưng khi tôi cố in, tôi chỉ thay đổi ... Các gợi ý duy nhất tôi đã tìm thấy cho đến nay là use Cairo, nhưng Cairo là mangling phần còn lại của cốt truyện của tôi, vì vậy tôi muốn gắn bó với các thiết bị pdf gốc.

Có cơ hội nào không, bằng cách sử dụng Unicode hoặc một cái gì đó khác, để có được chuỗi đó được in trong cốt truyện, nhưng không phải sử dụng Cairo?


Dưới đây là một ví dụ về những gì Cairo không (điều này được coi là một góc của đồ thị, với một đường viền màu xám):

screenshot from Cairo

Dấu chấm một phần được cắt đứt, không cắt bớt. Vì vậy, khi nó được phủ với biên giới, biên giới là hơi bù đắp, và các dấu chấm "hiển thị thông qua" biên giới (ở đây bạn chỉ nhìn thấy nó ở phía dưới, ở nơi khác nó có thể nhìn thấy rõ hơn). Và biên giới phía dưới và bên phải dày hơn biên giới bên trái và trên cùng. Dải màu xám nhạt phía sau dấu chấm rộng hơn ở Cairo. Những vấn đề này không có trong thiết bị PDF chuẩn.

Screenshot from standard

Tôi hiện đang làm việc trên một hệ thống 21 Fedora, nhưng tài liệu này có cũng để biên dịch trên Windows 8 hoặc 10, và tốt nhất cũng trên hương vị Linux khác.


Đây là mã cho cốt truyện (dự định được xem ở kích thước nhỏ, khoảng 2x1,5 inch). Kế hoạch hiện nay là phải có văn bản trong biến c.a và đặt nó nơi một nhãn trục sẽ được, nhưng tôi muốn giữ lại các lựa chọn của tôi mở để làm cho nó một chú thích sau:

offset.plotdata <- data.frame(understandability=c(2.95, 0.85, 0.75, 1.15, 2.25, 2.05, 1.95, 2.15, 2.25, 0.75, 2.05, 0.85), lowercase.pseudonym=c("A", "B", "C", "D", "E", "F", "A", "D", "E", "C", "F", "B"), questionnaire=c(rep("pre", 6), rep("post", 6))) 
offset.plotdata$decorative.points <- c(1,2,3,4,5,NA,1,2,3,4,5,NA) 
middle.blue <- "#2186D9" 
variable.name <- "understandability" 
cor.value <- 0.84 
c.a <- "rho = 0.84" 
ggplot(offset.plotdata, 
     aes_string(x="questionnaire", y=variable.name, 
        group="lowercase.pseudonym"))+ 
    geom_line(colour=middle.blue)+ 
    ylim(c(5,0.5))+ 
    theme_bw()+ 
    theme(panel.grid.major.y = element_line(size=5, color="#f8f8f8"), 
     panel.grid.minor.y=element_blank(), 
     panel.grid.major.x=element_blank(), 
     panel.grid.minor.x=element_blank(), 
     text = element_text(size=9), 
     axis.text=element_text(size=8), 
     axis.ticks.y=element_blank(), 
     plot.margin = unit(c(0,5,0,0), "mm") 
     #axis.title.y=element_text(margin=margin(0,20,0,0)) 
)+ 
    labs(y="Angekreuzte Option", x=as.character(c.a))+ 
    scale_x_discrete(expand = c(0,0), label=c("Vorher", "Nachher"))+ 
    #ggtitle("gepaarte Antworten")+ 
    geom_point(data=offset.plotdata, 
      aes(x=questionnaire,y=decorative.points), 
      fill=middle.blue, 
      colour=middle.blue, 
      size=5) 
+0

không biết, nhưng bạn có thể thêm một chút về cách Cairo mangling phần còn lại của cốt truyện của bạn? Có lẽ một phần của vấn đề là có thể sửa chữa được. Nó cũng có thể hữu ích để thêm thông tin về nền tảng của bạn (hệ điều hành và phiên bản), vì một số loại vấn đề này là nền tảng cụ thể. Đã cập nhật –

+0

@BenBolker. – rumtscho

+0

và tại sao muốn có một chuỗi hỗn hợp chứa thông tin được lưu trữ trong một quy tắc biến bằng cách sử dụng 'expression()'/plotmath? ví dụ: 'cor.value <- 0.84; thay thế (biểu thức (rho = x), danh sách (x = cor.value)) ' –

Trả lời

2

Tôi không biết tại sao expression(...) không hoạt động (tức là nó không in các chữ cái Hy Lạp nhưng nó vẫn in "khái niệm" cũng) và các phím tắt chỉ định một biểu thức với một dấu ngã (~) không làm việc, nhưng công trình này cho tôi:

g0 <- [... the rest of the graph ...] 

cor.value <- 0.84 
c.a <- substitute(~rho == x, list(x=cor.value)) 
g0 + labs(y="Angekreuzte Option", x=c.a) 
+0

Đối với tôi, nó in 'biểu thức (ρ = 0,84)' vào ô.Bàn điều khiển cũng cho phép quay trở lại khi tôi chỉ đơn giản gọi là 'c.a.' Tôi đã thử dùng nó và dùng' substring' trên nó, nhưng neiter 'cat' và' as.character' không biểu diễn. – rumtscho

+0

Có, đã sao chép từ đây. Nếu tôi sử dụng 'as.character', thì không có gì được in trên cốt truyện. – rumtscho

+0

2.2.0 ở đây, đó là những gì đã thông qua packages.install (trên R 3.2.2) – rumtscho