2012-06-09 40 views

Trả lời

70

Vấn đề này thực sự có thể có một vài nguyên nhân khác nhau: (! Trước khi bất kỳ âm mưu được thực hiện)

Phông chữ mặc định không bao gồm những glyphs

Bạn có thể thay đổi font chữ mặc định bằng cách sử dụng sau đây

matplotlib.rc('font', family='Arial') 

trong một số phiên bản của matplotlib bạn sẽ phải te gia đình thiết lập:

matplotlib.rc('font', **{'sans-serif' : 'Arial', 
          'family' : 'sans-serif'}) 

(Lưu ý rằng vì sans-serif chứa một gạch nối bên trong cú pháp **{}, nó thực sự cần thiết.)

Lệnh đầu tiên thay đổi gia đình sans-serif phông chữ để chỉ chứa một chữ (trong trường hợp của tôi nó đã Arial), các thứ hai đặt họ phông chữ mặc định là sans-serif.

Các tùy chọn khác được bao gồm in the documentation.

Bạn đã không đúng cách tạo/passsed đối tượng chuỗi thành Matplotlib

Thậm chí nếu font chứa glyphs thích hợp, nếu bạn quên sử dụng u để tạo Unicode hằng, Matplotlib sẽ có hành vi này:

plt.xlabel("Średnia odległość między stacjami wsparcia a modelowaną [km]") 

Vì vậy, bạn cần phải thêm u:

plt.xlabel(u"Średnia odległość między stacjami wsparcia a modelowaną [km]") 

nguyên nhân khác là bạn quên đặt một bình luận kỳ diệu UTF-8 trên đầu trang của tập tin (tôi đọc rằng đây might be the source of the problem):

# -*- coding: utf-8 -*- 
+14

Theo [tài liệu] (http://matplotlib.org/api/artist_api .html # matplotlib.text.Text.set_family), bạn có thể trực tiếp chuyển tên phông chữ chứ không phải là một gia đình. Điều này làm việc cho tôi: 'matplotlib.rc ('font', family = 'DejaVu Sans')' – Lekensteyn

+2

Đây là cú pháp dứt khoát tốt hơn! Tôi sẽ để cái cũ trong trường hợp nó thực sự cần thiết cho một số loại phiên bản matplotlib cổ đại. –

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