2017-01-15 21 views
5

Karmaşık bir dizenin bir parçası olarak, örneğingibi bir değişkenin içine kaydedilmiş bir Unicode karakterinin görünmesini istiyorum, burada cor.value diyelim. Bu, expression veya bquote (önerilen here) gibi çözümleri pratik olarak kapsam dışı bırakır. Tek başlarına çalışıp çalışamayacaklarını bilmiyorum, ama onları paste aracılığıyla bir değişken değeriyle birleştirmeye çalışmak bir problemdir. Çalışmamı sağlayabilmemin tek yolu, kaynağımdaki unicode sembolünü kullanmaktı. Hatta R Studio'daki arsaya bile geldi.ggplot unicode karakterler?

Ancak yazdırmaya çalıştığımda, bunun yerine yalnızca .. aldım. Şimdiye kadar bulduğum tek öneri use Cairo, ama Kahire benim arsa geri kalanını mangling, bu yüzden orijinal pdf cihaz ile sopa istiyorum.

Unicode'u veya başka bir şeyi kullanarak, bu dizeyi arsa içine yazdırmak, ancak Kahire'yi kullanmak zorunda kalmamak için bir şans var mı?

screenshot from Cairo

kısmi nokta değil kesiliyor: İşte


Kahire ne bir örnek (bu gri kenarlıklı, grafiğin bir köşe olması gerekiyordu) 'dir kısaltıldı. Bu yüzden, sınırla kaplandığında, kenarlık biraz dengelenir ve noktalar sınırdan “görünür” (burada sadece altta gördüğünüzde, başka yerlerde daha görünür). Ve alt ve sağ kenarlık, sol ve üst sınırdan daha kalındır. Kahvenin arkasında, uçağın ardındaki soluk gri bant daha geniş. Bu sorunlar standart PDF cihazında mevcut değildir.

Screenshot from standard

diğer Linux tatlar tercihen de şu anda bir Fedora 21 sistem üzerinde çalışıyorum ama bu belge aynı zamanda Windows 8 veya 10 üzerinde derlemek vardır ve.


Arsa için kod (küçük boyutlarda, yaklaşık 2x1.5 inç boyutlarında görüntülenmesi amaçlanmıştır). Mevcut plan c.a değişkeninde metin var ve bir eksen etiketi nerede olacağını yerleştirmek için, ama daha sonra bir ek açıklama yapmak Seçeneklerimi açık tutmak istiyorum:

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

bilmiyorum ama Kahire'nin arsanızın kalan kısmını nasıl değiştirdiğini biraz daha ekleyebilir misiniz? Belki de sorunun bir kısmı tamir edilebilir. Bu tür sorunlardan bazıları platforma özel olduğundan, platformunuz (OS ve sürüm) hakkında bilgi eklemek de muhtemelen yararlı olacaktır. –

+0

@BenBolker güncellendi. – rumtscho

+0

ve 'expression()'/plotmath kullanarak değişken bir kuralda saklanan bilgileri içeren karışık bir dizgiye sahip olmak neden ister? ör. cor.value <- 0.84; yerine (ifade (rho = x), liste (x = cor.value)) ' –

cevap

2

Nedenini bilmiyorum (Yunan harfleri yazdırmak yok yani ama yine de "ifadesini" yazdırır) expression(...) çalışmaz ve bir tilde (~) yaptığı işlerde ile bir ifade belirtme kısayol, ancak bu benim için çalışıyor:

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

Benim için, bu ifade (ρ = 0.84) 'arsa içine yazdırır.Konsol da sadece 'c.a.' dediğimde bunu geri verir, bu sokmayı koordine etmeye çalıştım ve üzerine 'substring' kullandım, ama neiter 'cat' ne de 'as.character' bu temsili verdi. – rumtscho

+0

Evet, buradan yapıştırılan yapıştırılmış. Eğer 'as.character' kullanırsam, hiçbir şey arsa üzerine basılmaz. – rumtscho

+0

2.2.0 burada, paketleri.install (R 3.2.2'de) – rumtscho