Matplotlib,动态改变图的宽度

时间:2016-12-17 15:58:36

标签: python matplotlib latex

所以我有一个完全黑色的matplotlib图,所有轴都被禁用,图中唯一存在的是白色文本,包含一个由用户输入的数学表达式,它作为参数传递给渲染函数EXPR”。

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()

'width'是绘图的宽度,目前我有一个非智能系统,它会触及明文表达式的长度和绘图宽度之间的关系,但它并不完全适用于矩阵图有多条线,系统到位显然不能很好地工作。

我希望根据白色文本在绘图上的延伸程度来计算绘图所需的宽度,因此只要文本在横向上完成,我希望绘图结束,有没有办法做到这一点?/检测白色文本何时会在情节中结束?

这样表达式之后就没有很多黑色空间,减慢了渲染时间到.png和浪费空间。由于图的宽度与表达式

相同

1 个答案:

答案 0 :(得分:0)

github上有一个完整的解决方案:

通过 ahwillia

将LaTeX等式绘制为matplotlib数字
  

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

<小时/> github上还有另一个模块,它也可以在命令行上运行:

texscrap - 用于通过 johnjosephhorton

从LaTeX碎片制作PDF的Python实用程序
  

https://github.com/johnjosephhorton/texscrap