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

时间:2013-12-24 01:49:47

标签: python fonts matplotlib seaborn

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

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

enter image description here

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

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

2 个答案:

答案 0 :(得分:14)

正如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的路线图上。

答案 1 :(得分:5)

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

但是,更一般地说,您只想tweak the rc parameters。 (可以在运行时通过matplotlib.rc / matplotlib.rcParams或通过.matplotlibrc文件完成此操作。)

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

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

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

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