我升级了我的系统并重新安装了 R,现在我的标准 X-11 图没有抗锯齿——它们看起来有锯齿,字体看起来也很糟糕。
我似乎记得过去有过这样的问题,但不记得我做了什么。
一些其他信息:
qplot
也没有消除锯齿- 绘制到
png
设备也会产生非抗锯齿输出 - 然而,绘制到
pdf
设备会产生漂亮的抗锯齿输出
另一件事:我已经运行这个版本的 R/Ubuntu 一段时间了,大约几个月。我不知道这个绘图问题是在安装新的 R 后立即开始的,还是在那之后我做了一些事情来解决它。我不记得以前注意到缺乏抗锯齿,但我可能没有注意或做很多绘图。
有人知道怎么解决吗?目前我正在使用 Ubuntu 14.04.3 LTS 运行从源代码编译的 R 3.2.1。
还有一些事情。正在关注the discussion here我尝试安装 Cairo,但失败了。此外,我过去无需安装 Cairo 就可以在 R/linux 中获得非抗锯齿图,如果没有必要,我宁愿不安装额外的东西。
这是我的 X11.options()
:
$display
[1] ""
$width
[1] NA
$height
[1] NA
$pointsize
[1] 12
$bg
[1] "transparent"
$canvas
[1] "white"
$gamma
[1] 1
$colortype
[1] "true"
$maxcubesize
[1] 256
$fonts
[1] "-adobe-helvetica-%s-%s-*-*-%d-*-*-*-*-*-*-*"
[2] "-adobe-symbol-medium-r-*-*-%d-*-*-*-*-*-*-*"
$family
[1] "sans"
$xpos
[1] NA
$ypos
[1] NA
$title
[1] ""
$type
[1] "Xlib"
$antialias
[1] "default"
最佳答案
我正在运行 R 3.4.0,默认情况下,X11()
和 png()
得到抗锯齿线、“点”和绘图轴设备。
但是,为了获得消除锯齿的文本,需要在我的系统上安装某些“Microsoft 字体”包。我不能代表 Ubuntu,但在 Arch Linux 上,包名称是“ttf-ms-fonts”和“fontconfig-ttf-ms-fonts”,两者都在 AUR 中。良好的 Google 搜索应该会为您自己的系统找到类似的软件包。
这是安装和未安装“ttf-ms-fonts”的 png()
设备生成的一些图。
- 没有“ttf-ms-fonts”:
- 使用“ttf-ms-fonts”:
我希望可以看到两个绘图中的线条和圆圈都消除了锯齿,但只有第二个绘图具有消除锯齿的文本。
这是我用来生成上述图的代码:
set.seed(1);
brownian=cumsum(runif(1e3,min=-1));
png("brownian-no-msfonts.png",height=400);
par(cex=1.3);
plot(brownian,ylim=c(-10,15),
ylab="Position",xlab="Time",main="Brownian Motion");
lines(brownian+7);
dev.off()
我已经确认我需要“ttf-ms-fonts”和“fontconfig-ttf-ms-fonts”(我认为后者配置默认使用的某些字体)以获得抗锯齿R 中的文本,尽管只需要第一个包,例如在 Firefox 中获取消除锯齿的文本。
但是,我一直在玩“knitr”包,我注意到如果我使用“rmarkdown”包中的“render”编译我的文档,那么它可以生成带有或不带有“ttf”的抗锯齿图-ms-fonts”软件包已安装。我还没弄清楚它是怎么做到的。我知道它运行 Pandoc 生成带有嵌入式字体的 HTML,但我不确定“rmarkdown”包本身是否包含字体,或者它是否只是更好地了解在我的系统上哪里可以找到好的字体。
我觉得花时间在这上面很肤浅,但无论如何。
关于r - 在 Ubuntu 上使用 R 获取抗锯齿绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32717992/