定义字体后,在ggplot轴上添加“£”符号。

时间:2018-08-31 11:49:36

标签: r ggplot2

我正在尝试在下面的ggplot y轴标签上添加“£”符号。但是,当我运行代码时,£符号为空白,即“平均费用()”,而不是“平均费用(£)”。没有警告。

我想这是因为我正在调用一种特定的字体(GoodDog Plain,通过extrafont软件包),因为当我删除所有主题时,会出现£符号。但是,由于我需要使用此字体,有人知道这种方法吗?

ggplot(FTAt, aes(x=Year, y=FTA_cost, col=Country, group=Country)) + 
  geom_line(size=1)+
  ylab("Mean cost (£)") +
  xlab("Year")+
  scale_color_manual(values=c("red2", "royalblue4","forestgreen"))+
  theme(axis.text.x = element_text(family="GoodDog Plain"),
    axis.text.y = element_text(family="GoodDog Plain"),
    axis.title.x = element_text(family="GoodDog Plain"),
    axis.title.y = element_text(family="GoodDog Plain"),
    legend.title = element_text(family="GoodDog Plain"),
    legend.text = element_text(family="GoodDog Plain"))

谢谢!

3 个答案:

答案 0 :(得分:1)

这对我有用

ggplot(mtcars, aes(cyl,mpg)) + 
  geom_point()+
  ylab("Mean cost (£)") +
  xlab("Year")

enter image description here 我的系统

R version 3.4.1 (2017-06-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 Service Pack 1

ggplot2_3.0.0

答案 1 :(得分:1)

scale_y_continuous(labels = function(x) paste0(x, "£"))

答案 2 :(得分:0)

您使用的字体不包含£,如果您不能使用其他字体,则最好使用:

+ylab("Mean cost (GBP)")

或因为字体的大括号在一定程度上看起来像是磅符号:

 +ylab("Mean cost ({)")

如果您仍然不满意,可以尝试将破折号“-”添加到“ F”下作为不可转移的解决方案:

 +ylab("Mean cost (F)")
...

text('-',x,y,cex=size,family="GoodDog Plain",xpd=NA,srt=90)

您将需要手动更改x,y和大小的值,直到它在正确的位置并且看起来不错为止。