iPython中Seaborn统计数据可视化中的默认字体

Lui*_*uel 9 python fonts matplotlib seaborn

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

在他们的一些教程之后,我重新创建了以下内容:

在此输入图像描述

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

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

mwa*_*kom 14

正如Joe所说,默认情况下Arial没有安装在Ubuntu上,但它很容易安装.这是我在Travis上测试的,这是一个Ubuntu环境:

sudo apt-get install msttcorefonts -qq
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

找到想要使用的产品后,只需按照设置进行设置,例如:

sns.set(font="Verdana")
Run Code Online (Sandbox Code Playgroud)

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

  • 在 python3.5.2 和 matplotlib2.0.0 中,第二行已经失败:`AttributeError: module 'matplotlib' has no attribute 'font_manager'`。 (3认同)

Joe*_*ton 5

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

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

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

import matplotlib as mpl
mpl.rcParams['font.family'] = 'Arial'
Run Code Online (Sandbox Code Playgroud)

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

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