2016-08-15 2 views
0

У меня есть код питона с помощью Matplotlib, который появляется штраф на centos7 машине, но на другом centos7 машине, шрифт появляется выцветает на осях и легенды: enter image description hereMatplotlib загружен шрифт появляется выцветают на другой машине

Мой шрифт at /usr/share/fonts/MyFont Я проверил, что мой шрифт появляется в /root/.cache/matplotlib/fontList.cache Я пробовал удалить и регенерировать его.

def plot(data, format='png', width=400, height=400, font='MyFont'): 
    font_size = max(3, int(width/40)) 
    plt.cla() 
    plt.clf() 
    matplotlib.rcParams.update({'font.size': font_size,\ 
           'font.family': font}) 
    fig = plt.figure() 
    _width = width/fig.get_dpi() 
    _height = height/fig.get_dpi() 
    fig.set_size_inches(_width, _height) 
    plt.xlabel('this is x axis') 
    plt.ylabel('this is y axis') 
    plt.legend(bbox_transform=plt.gcf().transFigure, loc=2) 
    x = [1,2,3,4] 
    y = x 
    plt.plot(x, y, color='b', label='line1') 
    plt.legend(bbox_transform=plt.gcf().transFigure, loc=2) 
    plt.title('this is title', fontweight='bold') 

обновление:

Я думаю, что проблема в том, что у меня есть Lato-Hairline.ttf и Lato-Regular.ttf и на одной операционной системе он берет регулярно, как по умолчанию, когда на этом новая машина принимает Hairline как значение по умолчанию, которое так исчезает.

ответ

0

Я удалил Lato-HairlineItalic.ttf и Lato-Hairline.ttf, а затем удалил /root/.cache/matplotlib/fontList.cache. Он заставил matplotlib выбрать другой файл ttf, который является правильной регулярной формой шрифта. Я все еще хотел бы знать, как matplotlib определяет, какой шрифт является обычной формой (по умолчанию), так что он работает случайным образом на разных компьютерах centos.

Смежные вопросы