【问题标题】:ggplot axes are garbled, look like Unicode boxesggplot 轴乱码,看起来像 Unicode 框
【发布时间】:2020-09-13 19:53:48
【问题描述】:

运行 Ubuntu 16.04; R 3.6.2; ggplot2 3.3.0

在 --nix 下运行 R

如果我运行这个..

library(ggplot2)
data("midwest", package = "ggplot2")
ggplot(midwest, aes(x=area, y=poptotal))

我得到一个带有小方框的坐标轴(Unicode?)

如果我使用“情节”,我会得到相同的小盒子

但是如果我运行 'plot' 添加一个 'family' 属性,

plot (1:10, family="arial") 

我得到了这个(好轴),

这表明至少有一些字体存在!

返回 ggplot ....

简单的解决方案是弄清楚(我试过)如何在 ggplot 中设置家庭。

我试过了,

ggplot(heightweight, aes(x= ageYear, y=heightIn, font="ariel")) + geom_point() 
ggplot(heightweight, aes(x= ageYear, y=heightIn, family="ariel")) + geom_point() 

没有帮助..小盒子。 注意:如果我输入 family="Zombie" 很高兴

有人知道如何在ggplot中设置家庭吗?

更好的解决方案?

对我来说,最难的解决方案是找出缺少哪些字体,将它们安装在 --nix 下,然后确保 R(在 --nix 下)可以找到它们。

【问题讨论】:

    标签: r ggplot2 nix nixpkgs


    【解决方案1】:

    我认为重命名这个问题是值得的,因为它是 Nix 特定的问题,而且很难找到。核心问题是系统fontconfig和nix提供的不匹配造成的。

    https://discourse.nixos.org/t/fonts-in-nix-installed-packages-on-a-non-nixos-system/5871/6

    我通过添加明确的 fontconfig 依赖项并将以下内容添加到我的 mkShell 命令来解决此问题

    shellHook = "export FONTCONFIG_FILE=${pkgs.fontconfig.out}/etc/fonts/fonts.conf";
    

    之后,从 nix-shell 中打开 R 并生成绘图按预期工作。

    【讨论】:

      【解决方案2】:

      玩了这么多之后,我得到了一些工作!

      我现在得到了一个漂亮的标题和坐标轴(不再是 Unicode)。

      这是sn-p

      ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() +
         ggtitle("Fuel Efficiency of 32 Cars") +
         xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") +
         theme_bw() +
         theme(text=element_text(family="Garamond", size=14))
      

      显然,在 ggplot 中设置家庭的方式是使用“主题”,

      theme(text=element_text(family="Garamond", size=14))
      

      我知道这不是一个完美的解决方案,但它让我继续前进(没有药物 :-))。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多