GGally::ggpairs绘图无法显示相关系数

4

我试图理解为什么在执行命令ggpairs(iris, mapping=ggplot2::aes(colour = Species))时,相关系数的图表没有显示。

控制台输出

它看起来像这样:未显示相关系数的图表

如果我在图表上执行检查元素,则HTML中的图像标签如下:

<img id="img" width="100%" height="100%" style="display: inline;" src="http://127.0.0.1:27032/graphics/b7091da9-1a0a-4672-902e-7c844add4aa9.png">

我刚开始学习R,所以这让我感到困惑。我觉得这可能是与语言环境有关,所以我尝试进行实验:

Sys.setlocale("LC_ALL", 'en_US.UTF-8')

然而重新调用库后仍没有改变。

下面是一些细节信息:

R版本4.0.1(2020-06-06),运行在Arch Linux x86_64 5.6.15-arch1-1上。

> Sys.getlocale()
[1] "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=C;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C"

如果我没有提供足够的数据,我很抱歉。如果是这种情况,我会更新。

使用 install.packages("GGally", type = 'source') 的输出更新帖子。


> install.packages("GGally", type = 'source')
Installing package into ‘/home/mogad0n/R/x86_64-pc-linux-gnu-library/4.0’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/src/contrib/GGally_2.0.0.tar.gz'
Content type 'application/x-gzip' length 1393325 bytes (1.3 MB)
==================================================
downloaded 1.3 MB

* installing *source* package ‘GGally’ ...
** package ‘GGally’ successfully unpacked and MD5 sums checked
** using staged installation
** R
** data
*** moving datasets to lazyload DB
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded from temporary location
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (GGally)

The downloaded source packages are in
    ‘/tmp/RtmpvIM27v/downloaded_packages’

我已经删除了包并重新启动了R,并执行了install.packages("GGally", type = 'source')以及相同的操作ggplot2,但仍然存在相同的问题。我没有看到任何关于“package encoding: UTF-8”的提及。我正在更新我的帖子,其中包括GGally安装命令的输出。 - mogad0n
嗨@mogad0n。很抱歉我无法重现你的问题。在我的(Windows)机器上一切正常。从你发布的图片来看,似乎是字体问题,因为文本未正确显示。为了检查这是否与GGAlly相关或可能是更普遍的问题,请测试例如ggplot(data.frame(label = "corr:", corr = 1)) + geom_text(aes(x = factor(1), y = factor(1), label = paste(label, corr), color = label), family = "mono") + guides(color = FALSE) + theme_void()`,它会给你一个简单的图表,应该使用单色字体显示“corr: 1”。 - stefan
@stefan它没有显示出来。所以很可能是字体问题?如果是的话,我该如何解决呢? 我稍微研究了一下,发现了像extrafontshowtext这样的软件包。但我不想在没有某种理由的情况下随意尝试。 - mogad0n
嗨@mogad0n。那正是我猜的。(; 嗯。不幸的是,我恐怕无法帮助您解决这个问题。我会尝试重新启动R(这总是一个好主意)。否则,请在特定字体问题上发布一个新问题,例如“ggplot2中未显示的字体”。 - stefan
1个回答

3

这似乎涉及到在Linux中呈现等宽字体时的冲突 - 冲突似乎与tex有关(请参见此处此处)。

在此之前的效果如下所示:

library(GGally)
iris %>% 
  select(Sepal.Length:Petal.Width) %>% 
  ggpairs()

输出结果: 输入图像描述

之后我告诉它使用了一个 sans 字体:

iris %>% 
  select(Sepal.Length:Petal.Width) %>% 
  ggpairs(upper = list(continuous = wrap("cor", family="sans")))

输出:在此输入图片描述

在Ubuntu 20.04和R版本4.0.2上对我有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接