13

在尝试在 Anaconda 和 Enthought for Mac 中运行stanford.edu/~mwaskom/software/seaborn/出现多个问题(依赖项和版本存在许多问题)之后,我能够从 Ubuntu 中的 Enthought 虚拟环境中运行它(在 VirtualBox 上运行) .

按照他们的一些教程,我重新创建了以下内容:

在此处输入图像描述

但令我困扰的是,使用的字体不是为 Seaborn 设计的字体,而是最接近的字体。

有没有人在调整 matplotlib 中的字体选择方面有经验?关于如何使用 matplotlib 的字体管理器的任何好的教程?

4

2 回答 2

19

正如 Joe 所指出的,Arial 默认没有安装在 Ubuntu 上,但它很容易安装。这就是我在 Travis 上进行的测试,这是一个 Ubuntu 环境:

sudo apt-get install msttcorefonts -qq

Seaborn 还在样式控件的顶层公开了字体选项,因此您也可以轻松使用系统上安装的字体选项。据我所知,您可以通过这种方式获取可能的字体列表:

import matplotlib as mpl
font_paths = mpl.font_manager.findSystemFonts()
font_objects = mpl.font_manager.createFontList(font_paths)
font_names = [f.name for f in font_objects]
print font_names

一旦你找到了你想要使用的,只需通过执行来设置它,例如,

sns.set(font="Verdana")

当然,这必须在每个将生成 seaborn 图的脚本/笔记本的顶部完成(这很烦人),因此改进非默认样式的使用是 0.3 的路线图。

于 2013-12-25T01:17:33.290 回答
5

好吧,如果你想使用 Arial,你需要安装 Microsoft 核心字体。如果我没记错的话,Arial 不能在与大多数 OSS 相同的条款下自由重新分发,因此您需要同意许可协议并自行安装。

但是,更一般地说,您只想调整 rc 参数。(这可以在运行时通过matplotlib.rc/matplotlib.rcParams或通过.matplotlibrc文件来完成。)

例如,seaborn 基本上是这样做的(除其他外):

import matplotlib as mpl
mpl.rcParams['font.family'] = 'Arial'

该错误是因为您没有在系统上的任何位置安装 Arial 字体。

您通常不想直接触摸字体管理器。有很多例外情况(例如使用特定的 .ttf 文件),但一般来说,您会希望坚持使用系统上安装的字体。您可能想要指定一个FontProperties实例,但即便如此,通过其他关键字参数指定事物通常更容易。

于 2013-12-24T02:16:05.067 回答