2013-12-24 20 views
9

在Anaconda和Enthought for Mac中运行stanford.edu/~mwaskom/software/seaborn/(依赖和版本有很多问题)后,我能够在Ubuntu的Enthought虚拟环境中运行它(运行VirtualBox的)。iPython中Seaborn统计数据可视化中的缺省字体

按照他们的一些教程我重新以下几点:

enter image description here

但困扰我的是,在使用的字体是不适合Seaborn的那些,但最近的一个。

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

+1

请随时[打开一个问题](https://github.com/mwaskom/seaborn/issues/new)了解有关安装问题的更多详细信息,以便我们可以更好地完成这项工作,或提供更好的文档。我知道有很多依赖关系,但我希望它可以与Anaconda结合使用。 – mwaskom

+0

@mwaskom谢谢Michael。实际上,我试图在StackOverflow中创建一个新的标签“Seaborn”,但是我需要2000个声望才能创建一个新标签,而我只有544个。有人在那里?今天晚些时候,我会按照你的建议在GitHub上记录我的问题。欢呼声和节日快乐! –

+0

@Joe Kington感谢您创建seaborn标签!凉! (作为StackOverflow专家的好处之一:-)。欢呼声和节日快乐! –

回答

12

正如Joe所指出的,默认情况下,Arial并未安装在Ubuntu上,但它很容易安装。这是我对特拉维斯,这是一个Ubuntu环境下测试做:

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

+0

在python3.5.2和matplotlib2.0.0中,第二行已经失败:'AttributeError:模块'matplotlib'没有'font_manager'属性。 – MERose

5

那么,如果你想使用Arial,你需要install the Microsoft core fonts。如果我没有记错,Arial不能像大多数开放源码软件那样按照相同的条款进行自由重新分配,所以您需要同意许可协议并自行安装。

但是,更笼统地说,您只需要tweak the rc parameters。 (这可以在运行时通过matplotlib.rc/matplotlib.rcParams或通过.matplotlibrc文件来完成。)

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

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

这个错误是因为你不您的系统上没有安装Arial字体。

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

+0

很好的解释乔。谢谢。 –