r - R用矩形而不是文本绘制图
问题描述
我正在构建一个使用snakemake
和使用环境的管道conda
,singularity
以确保可重复性。我遇到了一个错误,我的地块上的文本被矩形替换
在 Linux 和 Mac 系统上试验管道并禁用奇异容器后,问题似乎源于缺少字体库,因为当我在 Mac 上仅使用conda
( ) 运行管道时,文本绘制正常。--use-conda
奇点容器是从这个使用 Debian GNU/Linux的miniconda docker镜像构建的。我设法创建了一个不会绘制文本的最小示例管道。
# Snakefile
singularity: "docker://continuumio/miniconda3"
rule all:
input:
"mtcars-plot.png"
rule plot_mtcars:
output:
"mtcars-plot.png"
conda:
"minimal.yaml"
script:
"mtcars-test.R"
# mtcars-test.R
library(ggplot2)
png("mtcars-plot.png")
ggplot(mtcars, aes(factor(cyl), mpg)) + geom_boxplot()
dev.off()
# minimal.yaml
channels:
- bioconda
- conda-forge
- defaults
dependencies:
- r-base =3.6
- r-ggplot2
要绘制断线图,请运行管道
snakemake --use-conda --use-singularity
在 Debian GNU/Linux 上使用 R 正确绘制文本可能会缺少哪些包/库?
解决方案
感谢 MrFlick 的评论,第二个链接说mscorefonts
R 中的文本支持需要该包。
添加mscorefonts
到conda
环境可以解决问题
# minimal.yaml
channels:
- bioconda
- conda-forge
- defaults
dependencies:
- r-base =3.6
- r-ggplot2
- mscorefonts
推荐阅读
- python - 建议机器人 discord.py
- powershell - Powershell 内置命令停止工作
- python-3.x - 查找所有坐标点之间的成对距离,用共线点过滤距离
- ios - 表格中的垂直线未在暗模式下显示(快速)
- python - Django-Haystack 没有找到任何字段
- function - math.Max 在哪里定义?
- php - php date_diff 函数返回 0
- jenkins - GitSCM 结帐步骤中的分支列表?
- python - mypy:“__add__”的签名与超类型“元组”不兼容 - 但 __sub__ 一切正常
- python - 如何在 Python 中根据条件更改数据的值?