当我在 Jupyter + R 会话中绘图时,无论是 Notebook 还是 R 控制台、基础 R 还是 ggplot2 绘图,文本都会像这样被打乱:
sessionInfo
:
R version 4.3.3 (2024-02-29)
Platform: x86_64-conda-linux-gnu (64-bit)
Running under: Debian GNU/Linux 12 (bookworm)
Matrix products: default
BLAS/LAPACK: /home/adam/opt/mambaforge/envs/R433new/lib/libopenblasp-r0.3.27.so; LAPACK version 3.12.0
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
time zone: US/Central
tzcode source: system (glibc)
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] digest_0.6.37 IRdisplay_1.1 utf8_1.2.4 base64enc_0.1-3
[5] fastmap_1.2.0 glue_1.7.0 htmltools_0.5.8.1 repr_1.1.7
[9] lifecycle_1.0.4 cli_3.6.3 fansi_1.0.6 vctrs_0.6.5
[13] pbdZMQ_0.3-11 Cairo_1.6-3 compiler_4.3.3 tools_4.3.3
[17] evaluate_0.24.0 pillar_1.9.0 crayon_1.5.3 rlang_1.1.4
[21] jsonlite_1.8.8 IRkernel_1.3.2 uuid_1.2-1
请注意,
Cairo
已加载。
但是,如果我在 Linux 终端中启动 R 会话,或者将输出设置为 pdf/png 文件,或者卸载
Cairo
包并启动新的 Jupyter 会话,所有文本都将正常。即使我在 Linux 终端会话中执行 library('Cairo')
,图中的文本仍然正常。我在上面的代码中使用 R-4.3.3 只是因为我认为问题出在最新的 R 上,结果证明这是错误的。 有什么想法吗?非常感谢!
我尝试了 conda r-cairo、
install.packages('Cairo')
的不同版本的 CRAN Cairo 软件包以及不同版本的 R,但都没有工作。如上例所示,文本总是会扭曲。
按照 Simon Urbanek 的建议,这个问题可以通过更改默认字体来解决:
CairoFonts(regular="sans:style=Regular")