【问题标题】:ggplot2 issue with default font size (base_family = "")默认字体大小的ggplot2问题(base_family =“”)
【发布时间】:2021-04-30 10:35:13
【问题描述】:

正如您在this post 中看到的那样,有人找到了我的问题的解决方案,即我的 ggplot2 图表中的文本被 unicode-blocks 替换。这是由 ggplot2 (base_family = "") 的默认字体设置错误引起的。因此,解决方法是手动将 base_family 参数设置为“Arial”。

这里你可以看到一个示例代码:

# Libraries
library(ggplot2)
        
# create data
xValue <- 1:10
yValue <- cumsum(rnorm(10))
data <- data.frame(xValue,yValue)

# Plot
ggplot(data, aes(x=xValue, y=yValue)) +
  geom_line() +
  theme_classic()

生成的图表如下所示,其中文本以奇怪的 unicode 块显示(抱歉,我不知道它们的确切名称):

我可以通过将主题 base_family 设置为“Arial”来手动解决问题:

# Libraries
library(ggplot2)

# create data
set.seed(42)
xValue <- 1:10
yValue <- cumsum(rnorm(10))
data <- data.frame(xValue,yValue)

# Plot
ggplot(data, aes(x=xValue, y=yValue)) +
  geom_line() + 
  theme_classic(base_family = "Arial")

这是已解决问题的图像,仅当 base_family 设置为特定字体(如“Arial”)时才有效:

问题是为什么我的系统会以某种方式与默认字体发生冲突,如何将默认字体恢复正常?因为现在我必须在我用 ggplot2 制作的每个情节中调用base_family = "Arial" 参数。我应该提到,我没有字体问题,例如无论如何。除了有关如何更改特定主题类型的默认设置的链接外,我没有发现任何类似的问题,但我想将设置重置为正常,以便base_family = "" 再次工作。希望您能帮助我,如果您需要我提供更多信息,请不要犹豫。

R 版本:3.6.1 (2019-07-05)

平台:linux mint x86_64

conda 环境

【问题讨论】:

  • 您是否已经尝试过更新 R(版本 4 是游戏!)、所有包和任何适用于 linux 的字体包。我没有使用 linux,但安装的字体可能有问题。这个线程,虽然不是 R,但可能会有所帮助stackoverflow.com/a/42936670/7941188
  • 非常感谢您的回复。我会尽快尝试,如果有效,我会更新!
  • 您是否尝试将mscorefonts 添加到您的 conda 环境依赖项中?
  • 感谢您的所有回答。所以我尝试安装 R(版本 4),但据我了解,这与 R-Studio 不兼容。因此,我在另一个 conda 环境中安装了 R v.4.0.3 并安装了conda install -c r r-irkernel 以在 ipython 笔记本中使用 r。但在笔记本中我注意到version 仍然是3.6.1。此外,在我的问题中使用上面发布的代码时,图表内的文本问题保持不变..
  • 好的,我让 R 版本 4 工作,现在问题已解决。非常感谢@tjebo,也感谢 teunbrand 的意见。

标签: r ggplot2 fonts


【解决方案1】:

感谢@tjebo,我能够通过将我的 R 版本升级到 4.0.3 来解决这个问题。并切换到 ipython 笔记本,因为据我了解 R-Studio 不支持 4.0.3 版(编辑:可能只是由 conda 而不是 R-Studio 引起的问题)。

我使用 conda,因此我创建了一个新环境

# Create and activate conda environment
conda create --name r4
conda activate r4

然后我安装了 R Verison 4:

# install R version 4
conda install -c conda-forge r-base
conda install -c conda-forge/label/gcc7 r-base

最后,我安装了irkernel,以便在 IPython 笔记本中使用 R:

# Install R kernel for IPython notebook
conda install -c r r-irkernel
IRkernel::installspec()

# open jupyter notebook
ipython notebook

在 ipythone 笔记本中,我现在可以选择“R”作为内核,并且我之前遇到问题的代码可以按预期工作。再次感谢@tjebo。

编辑:重新安装 R 会导致由于缺少 lib 文件而无法正确安装软件包的进一步问题。但这是题外话,所以我可能会在其他地方展开另一个讨论。 (仅供参考,该解决方案的链接由 @fredaas here 发布)

【讨论】:

  • 我只是轻推了你一下,你辛苦了!确定 RStudio 和 R4.0.3?可能是一个 linux 的东西-它在我的 mac 上工作得很好
  • 不,我绝对不确定。我相信这主要是一个 conda 问题,如果安装了 R4.0.3,我无法通过 conda 安装 R-Studio。
猜你喜欢
  • 2011-11-09
  • 2012-05-09
  • 2012-08-10
  • 2019-10-05
  • 1970-01-01
  • 2019-05-02
  • 2019-05-16
  • 1970-01-01
  • 2023-03-21
相关资源
最近更新 更多