使用法国口音时ggsave()的问题

时间:2018-12-28 17:16:46

标签: r ggplot2 cairo

我想保存一个以CramérsV 作为图例名称的ggplot对象。当我运行ggsave()函数时,出现以下错误:

Error in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y,  : 
Metric information not available for this family/device

只有在我用 accent aigu 写下Cramér这个单词时,才会出现此错误,而没有任何重音就可以正常工作。

这是一个产生错误的小例子:

library(ggplot2)

df <- mtcars

barplot <- ggplot(df,aes(x=mpg,y=cyl,fill=disp))+
  scale_fill_gradient(name = expression(Cramérs ~ italic(V)))+
  geom_bar(stat='identity')

barplot

# save as cairo-png
ggsave(barplot, filename = "./plot.png",type="cairo",bg="transparent",dpi=300,unit="cm",width=40,height=20)

如何获取ggsave函数以图例名称中的重音符号保存对象?

1 个答案:

答案 0 :(得分:0)

像这样保存它:

     ggplot(mtcars,aes(x=mpg,y=cyl,fill=disp))+
      scale_fill_gradient(name = expression(Cramérs ~ italic(V)))+
      geom_bar(stat='identity')
      #guides(fill=guide_legend(title=expression(Cramérs ~ italic(V))))
  #add relevant preferences in the ggsave call. Key is to change type  
    ggsave(filename="myplot.png",last_plot(),type=cairo_ps())