2014-09-28 16 views
12

Matplotlib grafiklerimdeki "Heuristica" yazı tipini kullanmaya çalışıyorum ama gösterilmeyecek. Ben "Heuristica" için font.family değiştirdi ve got mesajmatplotlib font bulunamadı

findfont: FontFamily not found 

var

> hiçbir sonuç -

ben font.serif rcParameter ilk yerinde "Heuristica" tanımlı Düşünüyorum çünkü Heuristica kuruldu ve diğer yazılımlardan problemsiz erişebiliyorum. Bu yüzden fontmanager kullanılmış ve yaptı:

import pylab as pl 
la = pl.matplotlib.font_manager.FontManager() 
lu = pl.matplotlib.font_manager.FontProperties(family = 'Heuristica') 
la.findfont(lu) 

ve got:

Out[7]: 'C:\\Windows\\Fonts\\Heuristica-Regular.otf' 

Yani belli Heuristica bulunabilir. Kullanılabilir ttf-Fonts ( How can i get list of font family(or Name of Font) in matplotlib) baktım ama Heuristica bu listede yok.

Yardımlardan memnun olurum.

+0

olurdu? – tacaswell

+0

Sürüm 1.3.1 – MichaelA

+0

kullanıyorum 1.4.0 güncellemeyi deneyin. Bu işe yaramazsa lütfen github – tacaswell

cevap

25

Eh, mdboom github konusu sorunu üzerinde çözüldü, bütün kredi ona aittir:

Sisteminize yeni yaz yapmanız matplotlib için sırayla fontList.cache dosyasını silmeniz gerekir bul onları.

Örneğinizde 4/5 numaralı hatlarda çalışmasının nedeni, bir FontManager'ı sıfırdan oluşturuyor olmanızdır (bu, dosya sistemine gider ve tüm yazı tiplerini yakalar). Dahili olarak, matplotlib daha sonra kendi yazı tipini aradığında, fontList.cache dosyasında diskteki bir önbellekten yüklenmiş bir FontManager kullanıyor.

Uzun vadede, bu soruna geçici bir çözüm bulmak için işletim sisteminin yazı tipi arama mekanizmalarına geçme planlarımız var, (bkz. MEP14), ancak bu arada, her zaman fontList.cache dosyasını kaldırmanız gerekir. matplotlib'in yeni fontları keşfetmesini istiyorum.

fontList.cache sizin userfolder bulunmaktadır dosyası -> .matplotlib/fontList.cache, Windows için normalde kullandığınız mpl hangi sürümü C:\Users\yourUsername\.matplotlib\fontList.cache

+9

'~/.cache/matplotlib'. –

+0

Yine de, çalışmıyor, font yöneticisi herhangi bir makul yazı bulamıyor. –

+1

Çözümü yalnızca pencereler üzerinde denedim ve Linux üzerinde test edemiyorum. Ancak belki de bir hata düzeltmesi yapmanın en iyi yolu olan github Sorununa bir şeyler eklemek istersiniz: https: // github.com/matplotlib/matplotlib/issues/3590 – MichaelA