2016-12-17 9 views
0

Итак, у меня есть график matplotlib, который полностью черный, когда все оси отключены, единственное, что присутствует на графике, - это белый текст, содержащий математическое выражение, введенное пользователем, которое передается функция рендеринга как параметр 'expr'.Matplotlib, динамически меняющаяся ширина графика

def render(expr, path, width, x, y): 
    fig = plt.figure(figsize=(width, 16 if 'begin' in expr else 12)) 
    plt.text(x, y, expr, fontsize=320, fontweight='bold', color='white') 
    fig.set_facecolor('#000000') 
    plt.axis('off') 
    plt.savefig(path, facecolor=fig.get_facecolor()) 
    plt.clf() 

«ширина» ширина участка, в настоящее время у меня есть неразумные системы в месте, которое поражает отношения между длиной открытого текстом выражения и шириной участка, но он не работает точно особенно с матричным графиком, который имеет несколько линий, система на месте, очевидно, совсем не работает.

Я хочу, чтобы требуемая ширина графика была рассчитана в зависимости от того, насколько белый текст растягивается по сюжету, так как текст заканчивается по ширине, я хочу, чтобы график заканчивался там, есть способ сделать это?/обнаружение, когда белый текст завершится на графике?

Это не так много черного пространства после выражения, замедляя время рендеринга до .png и теряя пространство. По мере того как участок имеет ту же ширину, как выражение

+1

Проверить этот ответ http://stackoverflow.com/a/36959454/3707607 –

ответ

0

Существует полный рабочий раствор доступен на GitHub:

участка уравнение Латекс как Matplotlib фигуры от ahwillia

https://gist.github.com/ahwillia/c7e54f875913ebc3de3852e9f51ccc69


Имеется еще один модуль способен на GitHub, которые (также) работает в командной строке:

texscrap - Python программа для создания PDF-файлов из обрезков LaTeX по johnjosephhorton

https://github.com/johnjosephhorton/texscrap

+0

Отлично, спасибо, очевидно, часть изменения размера - это то, что мне нужно. –

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