diff --git a/docs/using/recipes.md b/docs/using/recipes.md index 93845839..183e6a95 100644 --- a/docs/using/recipes.md +++ b/docs/using/recipes.md @@ -549,3 +549,20 @@ RUN echo "from pyspark.sql import SparkSession" > /tmp/init-delta.py && \ python /tmp/init-delta.py && \ rm /tmp/init-delta.py ``` + +## Add Custom Font in Scipy notebook + +The example below is a Dockerfile to load Source Han Sans with normal weight which is usually used for web. + +```dockerfile +FROM jupyter/scipy-notebook:latest + +RUN PYV=$(ls "${CONDA_DIR}/lib" | grep ^python) && \ + MPL_DATA="${CONDA_DIR}/lib/${PYV}/site-packages/matplotlib/mpl-data" && \ + wget --quiet -P "${MPL_DATA}/fonts/ttf/" https://mirrors.cloud.tencent.com/adobe-fonts/source-han-sans/SubsetOTF/CN/SourceHanSansCN-Normal.otf && \ + sed -i 's/#font.family/font.family/g' "${MPL_DATA}/matplotlibrc" && \ + sed -i 's/#font.sans-serif:/font.sans-serif: Source Han Sans CN,/g' "${MPL_DATA}/matplotlibrc" && \ + sed -i 's/#axes.unicode_minus: True/axes.unicode_minus: False/g' "${MPL_DATA}/matplotlibrc" && \ + rm -rf "/home/${NB_USER}/.cache/matplotlib" && \ + python -c 'import matplotlib.font_manager;print("font loaded: ",("Source Han Sans CN" in [f.name for f in matplotlib.font_manager.fontManager.ttflist]))' +```