2012-10-08 35 views
7

Tôi đang cố gắng sử dụng phông chữ TTF trong matplotlib; tệp .ttf được tải xuống và lưu trữ cục bộ trên máy của tôi. Tôi đã theo dõi other instructions on this site để chọn phông chữ bằng cách sử dụng font_manager; tuy nhiên, bất kỳ văn bản nào mà tôi tạo cố gắng sử dụng các thuộc tính phông chữ vẫn xuất hiện trong phông chữ matplotlib mặc định.Tại sao matplotlib không sử dụng phông chữ .ttf mà tôi cung cấp?

Tôi biết rằng Python tìm thành công tệp phông chữ, vì prop.get_name() và các lệnh tương tự hiển thị thuộc tính của phông chữ tôi muốn - nhưng đó không phải là những gì xuất hiện trên hình của tôi. Bất kỳ đề xuất?

Như một ví dụ:

import matplotlib.pyplot as plt 
import matplotlib.font_manager as fm 

fig, ax = plt.subplots() 

prop = fm.FontProperties(fname='/Users/smith/fonts/coolfont.ttf') 
ax.set_title('Text in a cool font', fontproperties=prop, size=40) 

fig.show() 
+1

thử xóa bộ nhớ cache phông chữ của bạn trong thư mục mpl (ví dụ: ~/.matplotlib) –

+0

Tôi đã xóa tệp bộ nhớ cache phông chữ trong thư mục mpl. Chạy lại mã đã không thay đổi kết quả. Tôi sẽ lưu ý rằng nó không chỉ sử dụng một phông chữ * .ttf cụ thể - ngay cả đối với các phông chữ trong thư mục mpl-data/fonts/của tôi, việc thiết lập một tên họ khác trong 'Trình quản lý phông chữ' không bao giờ thay đổi những gì xuất hiện trong cửa sổ lô. – kwill

+0

hmmm. Chỉ có điều khác tôi có thể nghĩ là thay đổi dòng thứ 4 của bạn thành: 'prop = fm.FontProperties (fname = 'coolfont')' –

Trả lời

4

của nó vì sự phụ trợ mà bạn đang sử dụng.

Khi tôi cố gắng làm điều gì đó tương tự với chương trình phụ trợ mặc định của mình là MacOS và với phụ trợ cairo không hoạt động.

Tuy nhiên, khi tôi chuyển sang aggTKagg và chạy ví dụ của bạn, phông chữ tùy chỉnh ở đó.

Dưới đây là mã của bạn sửa đổi để nó chạy trên máy tính của tôi

#!/usr/bin/env python 
import matplotlib 
matplotlib.use("agg") 
import matplotlib.pyplot as plt 
import matplotlib.font_manager as fm 

fig, ax = plt.subplots() 
prop = fm.FontProperties(fname='Outwrite.ttf') 
ax.set_title('Text in a cool font', fontproperties=prop, size=40) 
plt.show() 
plt.savefig('test.png') 

Hình ảnh kết quả là với một phông chữ tùy chỉnh.

+1

Điều này giải quyết vấn đề của tôi trên OSX Yosemite chạy một máy tính xách tay iPython trong một môi trường Python 3 conda. – wil3

Các vấn đề liên quan