没有开罗的ggplot unicode字符?

时间:2017-01-15 03:53:47

标签: r unicode ggplot2

我想在我的情节中出现Unicode字符,作为混合字符串的一部分,例如ρ=0.84,其中0.84保存在变量中,让我们说cor.value

这实际上排除了诸如expressionbquote(建议here)之类的解决方案。我不知道他们是否会单独工作,但试图通过paste将它们与变量的值相结合是一个问题。我能让它工作的唯一方法是在我的源代码中实际使用unicode符号。它甚至出现在R Studio的情节中。

但是当我尝试打印时,我只改为..。到目前为止,我发现的唯一建议是use Cairo,但是开罗正在破坏我的剩余情节,所以我想坚持使用原始的pdf设备。

通过使用Unicode或其他方法,是否有机会在绘图中打印该字符串,但不必使用Cairo?

这是开罗所做的一个例子(这应该是图的一角,带有灰色边框):

screenshot from Cairo

部分点被切断,没有被剪裁。因此,当它与边框重叠时,边框略微偏移,并且点#34显示通过"边界(这里你只看到底部,其他地方更明显)。底部和右侧边框比左边和上边框更粗。点背后非常浅灰色的带子在开罗更为宽广。标准PDF设备中不存在这些问题。

Screenshot from standard

我目前正在研究Fedora 21系统,但是这个文档也必须在Windows 8或10上编译,最好也在其他Linux版本上编译。

以下是绘图的代码(打算以小尺寸观看,大约2x1.5英寸)。当前的计划是将文本放在c.a变量中,并将其放在轴标签所在的位置,但我希望保持我的选项打开以便以后将其作为注释:

 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)

1 个答案:

答案 0 :(得分:2)

我不知道为什么expression(...)不起作用(即它确实打印希腊字母,但它仍然打印“表达式”)以及指定带代字号的表达式的快捷方式({{1 }}确实有效,但这对我有用:

~