pyscript 环境中的 Sympy 图未显示在网络屏幕上

Sympy plot in a pyscript environment not showing on web screen

Python Sympy 运行ning 在 pyscript 环境中不显示 init_printing(use_unicode=True) 个字符,例如 √ 符号”,也不集成 sympy “绘图”功能。

我已经为 matplotlib 和 numpy 库添加了 py-env 语句,但仍然出现空白屏幕。浏览器控制台日志不显示任何 运行 时间错误消息。

Javascript 库中似乎缺少一些东西来激活 Latex“MathJax”,或 HTML5“mathml”可视化,以便使用类似于 Jupyter 的图形数学符号和视觉输出打印表达式.我正在为 Linux 使用 Chrome Beta 浏览器版本 101.0.4951.34 并使用“MathJax”(.js)和“print_mathml”(sympy)打印命令对其进行了测试。

我的代码示例:

    <html>
  <head>
    <title>Math Notation with Sympy</title>
    <meta charset="utf-8">

    <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
    <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
   
    <py-env>
- sympy
- matplotlib         
    </py-env>
    </head>
    <body>
      <div id="sym"></div>
      <py-script output="sym">  
# docu for printing: https://docs.sympy.org/latest/tutorial/printing.html  
# error: output does not show as formated Latex, or Unicode notation            
from sympy import *       
x, t, z, nu, pi = symbols('x t z nu pi')
init_printing()
Integral(sqrt(1/x), x) 
# pi # same error as above         
# pprint(N(sqrt(2)*pi)) # same error as above          
      </py-script>       
    </body>
</html>

我已使用您的代码片段将浏览器更新至最新的 Chrome 版本 102.0.5005.40(官方构建)测试版(64 位)- Linux Ubuntu获得输出,但没有有效的数学格式。显示的输出以某种方式 t运行cated,如下所示: / | | ___ | / 1 | / - dx | / x | / 在开发人员控制台,我看到一个 ASCII 格式的输出被写入“sym”div。如果有一种方法可以重定向到生成格式良好的数学符号的 MathML 或 MathJax 过程,那就太好了。下面检查:

<div id="sym" class="mathjax"><div id="sym-1">...</div>
<div id="sym-2">
</div><div id="sym-3">$$\int \sqrt{\frac{1}{x}}\, dx$$</div>
<div    id="sym-4">
</div></div>

想知道为什么 pyscript 生成的 id="sym-3" div 部分没有在 Chrome 浏览器中呈现任何 LATEX 数学符号,即使在加载 MathJax 脚本之后也是如此。它可能与另一个 Div?

中的 Div 部分有关

使用 pprint 它对我有用 (Chrome 101.0.4951.54)。

编辑: 然而,它在 jupyter notebook 中看起来确实更漂亮。

<html>
    <head>
      <title>Math Notation with Sympy</title>
      <meta charset="utf-8">
  
      <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
      <script defer src="https://pyscript.net/alpha/pyscript.js"></script>

      <py-env>
- sympy
- matplotlib         
      </py-env>
      </head>
      <body>
        <div id="sym"></div>
        <py-script output="sym">  
from sympy import symbols, init_printing, Integral, sqrt, pprint    
x, t, z, nu, pi = symbols('x t z nu pi')
pprint(Integral(sqrt(1/x), x))
        </py-script>       
      </body>
  </html>