标签上的多余空格,包括ggplot2中的西里尔符号

时间:2019-03-18 08:21:39

标签: r ggplot2 encoding

我正在尝试使用ggplot2在R中进行简单绘制。数据存储在数据框中,其列用俄语书写。问题是标签的内容从标签的右边界移开了。无论标签名称是明确定义的(下面的代码)还是从数据框列名称中隐式定义,这些额外的空格都会出现。

ggplot(mtcars, aes(x = drat, y =mpg, color = cyl))+
  geom_point() +
  labs(color = "Русское название") +
  theme(legend.background = element_rect(color = "black", linetype = "solid", size = 0.7),
        legend.justification = c(1, 1),
        legend.position = c(1, 1),
        legend.title.align = 0)

The picture with Russian title

带有英文标题的地块被适当地描绘。

The picture with english title

操作系统的编码设置如下:

  

“ LC_COLLATE = Russian_Russia.1251; LC_CTYPE = Russian_Russia.1251; LC_MONETARY = Russian_Russia.1251; LC_NUMERIC = C; LC_TIME = Russian_Russia.1251”

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

当需要带有西里尔符号的图例时,我遇到了同样的问题。由于 Windows 上的默认图形设备,看起来它是 ggplot2 存储库中的已知问题 reported。实际上,如果您尝试使用 ggsave 保存 ggplot,则可能不会遇到该问题。

我还没有尝试过自己保存文件,但我已经按照报告的问题找到了一些特定于 R studio here 的解决方法,它对我有用,也许它也可以解决您的问题。在绘制任何内容之前运行的示例代码是:

trace(grDevices:::png, quote({
  if (missing(type) && missing(antialias)) {
    type <- "cairo-png"
    antialias <- "subpixel"
  }
}), print = FALSE)