在尝试在Anaconda和Enthought for Mac中运行stanford.edu/~mwaskom/software/seaborn/多次出现问题(许多依赖项和版本问题)之后,我能够从Ubuntu中的Enthought虚拟环境(在VirtualBox上运行)运行它。
在他们的一些教程之后,我重新创建了以下内容:
但令我困扰的是,使用的字体不是为Seaborn设计的字体,而是最接近的字体。
有人有调整matplotlib中字体选择的经验吗?关于如何使用matplotlib的字体管理器的任何好教程?
答案 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
实例,但即便如此,通过其他关键字参数指定内容通常也更容易。