R 用矩形而不是文本绘制图
R Draws Plots with Rectangles Instead of Text
我正在使用 snakemake
构建管道并使用 conda
和 singularity
环境来确保可重复性。我 运行 遇到一个错误,其中我的绘图上的文本被矩形替换
在 Linux 和 Mac 系统上尝试管道并禁用奇点容器后,问题似乎源于缺少字体库,因为当我只 运行 在我的 Mac 上仅使用 conda
(--use-conda
) 的管道。
奇点容器由使用 Debian GNU/Linux 的 this 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 正确绘制文本我可能缺少什么 packages/libraries?
感谢 MrFlick 的评论,第二个 link 说 R 中的文本支持需要 mscorefonts
包。
将 mscorefonts
添加到 conda
环境可解决问题
# minimal.yaml
channels:
- bioconda
- conda-forge
- defaults
dependencies:
- r-base =3.6
- r-ggplot2
- mscorefonts
我正在使用 snakemake
构建管道并使用 conda
和 singularity
环境来确保可重复性。我 运行 遇到一个错误,其中我的绘图上的文本被矩形替换
在 Linux 和 Mac 系统上尝试管道并禁用奇点容器后,问题似乎源于缺少字体库,因为当我只 运行 在我的 Mac 上仅使用 conda
(--use-conda
) 的管道。
奇点容器由使用 Debian GNU/Linux 的 this 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 正确绘制文本我可能缺少什么 packages/libraries?
感谢 MrFlick 的评论,第二个 link 说 R 中的文本支持需要 mscorefonts
包。
将 mscorefonts
添加到 conda
环境可解决问题
# minimal.yaml
channels:
- bioconda
- conda-forge
- defaults
dependencies:
- r-base =3.6
- r-ggplot2
- mscorefonts