【问题标题】:Implementaion of particular cases in a mathtext to wxbitmap function将数学文本中的特殊情况实现到 wxbitmap 函数
【发布时间】:2015-07-07 13:10:45
【问题描述】:

我正在显示这样的位图

使用代码:

mt =r'$\frac{%.5fx^{2} + %.5fx + %.5f}{%.5fx^{2} + %.5fx + %.5f}$'%(self.z1[-3],self.z1[-2],self.z1[-1],self.z3[-3],self.z3[-2],self.z3[-1])
bm = mathtext_to_wxbitmap(mt)
self.picture.SetBitmap(bm)  

这里的函数mathtext_to_wxbitmap被实现为:

from matplotlib.mathtext import MathTextParser
mathtext_parser = MathTextParser("Bitmap")
def mathtext_to_wxbitmap(s):
    ftimage, depth = mathtext_parser.parse(s, 150)
    return wx.BitmapFromBufferRGBA(
        ftimage.get_width(), ftimage.get_height(),
        ftimage.as_rgba_str())

第一个代码 sn-p 中的z1z3 是列表,其值不断变化,因此位图不断更新。 一切正常。

问题出在以下几种情况:

案例 1:

当其中一个系数为0时。

如果系数为 0,我希望术语 0.00000x2 根本不应该显示。

案例 2:

当系数为负时。

如果系数为负,我只想要-2.12321 而不是+-2.12321

案例 3:

当所有系数都是整数时

我收到了 -

但我希望它像-

感谢您对解决上述任何案例的任何帮助。如果有的话,我愿意以完全不同的方式实现这一点。

【问题讨论】:

    标签: python matplotlib bitmap wxpython latex


    【解决方案1】:

    是的,我还注意到0 * x**2 看起来不太好。我认为你想要在这里做的事情超出了 matplotlib 等库的范围。

    您需要能够“理解”数学公式的东西,例如 Mathematica 或 Mathcad 或……。您最终会编写自己的输出格式化程序。

    在 python 中我想到的唯一现成的东西是 sympy 库。它可以将公式呈现为文本,也可以对公式进行简化。如果你想试一试,它还有一个PrettyPrinter 渲染器,为支持 unicode 的终端输出 unicode 公式。

    如果您可以使用相同的 unicode 字体(未经测试!),我认为它的输出可以在 wxPython 文本框中以 1:1 的比例显示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 2013-04-21
      • 1970-01-01
      • 2022-01-04
      • 2018-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多