我正在使用MathTextParser
在Qt中描述一些方程。因此,我从字典中获取所需的Tex字符串,使用我创建的解析器的to_rgba
方法进行解析(传递通用字体大小和dpi),最后将其通过figimage
交给我的QWidget
的FigureCanvas
。
看一下:
class MathWidget(QWidget):
def __init__(self, parent = None):
QWidget.__init__(self, parent)
...
self.canvas = MathCanvas() # The FigureCanvas to display the teximage
...
self.parser = mathtext.MathTextParser("Bitmap")
def render(self,metric):
equation = self.equations[metric]
rgb, d = self.parser.to_rgba(equation, color='black', fontsize=8, dpi=200)
self.canvas.fig.figimage(rgb.astype(float)/255., 0, 0)
self.canvas.draw()
我的问题是,需要解析的方程式长度不同,而
FigureCanvas
的大小是固定的(因为它需要固定大小),所以有些方程式会导致图像超出图形的大小,因此某些方程式的一部分被切断/不可见,就像这个例子中一样:被切断的方程式
我不想为每个tex字符串预定义字体大小,因为即使是用户定义的方程式(长度不可预测)也需要解析和显示。
那么,是否有办法使解析器适应例如字体大小,以便输出是固定大小的栅格化tex,而与方程式的大小/长度无关?
此外:与例如numpy/scipy相比,对我来说,matplotlib的文档似乎很难理解,因此如果有人能够评论
to_rgba
和figimage
的工作原理,我也会非常感激。例如,关于to_rgba
:下面引用的内容说明了深度的含义:
提前感谢。
- 深度是基线从图像底部偏移的像素数