2013-12-24 23 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

很好的解釋喬。謝謝。 –