R - 解析函数没有按预期工作

时间:2015-12-30 18:50:21

标签: r ggplot2 axis-labels aesthetics

在以下示例中(请注意y轴标签的差异)我使用变量填充ggplot2中的轴标签。有趣的是,~会产生更大的空间,并且在放大的-周围会出现额外的空格。

enter image description here

library(ggplot2)

#LabelY <- "Miles per Gallon-Car"
LabelY <- parse(text="Miles~per~Gallon-Car")

a <- ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
        ggtitle("Fuel Efficiency of 32 Cars") +
        xlab(LabelY) + ylab(LabelY) +
        theme(text=element_text(size=16))
print(a)

我正在使用解析,因为它允许我使用更复杂的示例,包括atop和希腊字母。

有没有办法可以使用解析来导入复杂的字符串,同时还能保留所需的&#34;更少的分散&#34;内容的外观?

1 个答案:

答案 0 :(得分:2)

看起来用带反引号括起带连字符的术语将允许你保留连字符而不是用短划线转动它。

这里我将轴标签的新连字版本放在x轴上,并将y轴保留为原始轴以进行比较。

LabelY <- parse(text="Miles~per~Gallon-Car")
LabelY2 <- parse(text="Miles~per~`Gallon-Car`")

ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
    ggtitle("Fuel Efficiency of 32 Cars") +
    xlab(parse(text = LabelY2)) + ylab(LabelY) +
    theme(text=element_text(size=16))

enter image description here

正如您在评论中指出的那样,您还可以在带连字符的术语周围使用大括号和单引号组合来获得相同的效果。

parse(text="Miles~per~{'Gallon-Car'}")