如何在plotly dash应用程序中编写数学符号?

zam*_*saf 6 python latex plotly plotly-dash

我想在绘图破折号应用程序中绘制数学符号。

例如,我尝试过这个:

import dash
import dash_html_components as html

app = dash.Dash(__name__)
app.layout = html.Div(
    children=[
        html.P(r'$ Area (m^{2}) $'),
        dcc.Markdown(r'$ Area (m^{2}) $')
    ]
)
app.run_server()
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

结果

我怎样才能得到这些结果?

在此输入图像描述

小智 2

你可以试试Mathjax。以下工作在我的最后(Python 3.9.1,dash==1.19.0,dash-html-components==1.1.2)

首先在当前项目的 asset 文件夹中创建一个 javascript 文件 (anyname.js)。在该文件中只有以下行:

setInterval("MathJax.Hub.Queue(['Typeset',MathJax.Hub])",1000);
Run Code Online (Sandbox Code Playgroud)

然后回到你的 python 文件:

from dash import Dash
import dash_html_components as html

MATHJAX_CDN = '''
https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/
MathJax.js?config=TeX-MML-AM_CHTML'''

external_scripts = [
                    {'type': 'text/javascript',
                     'id': 'MathJax-script',
                     'src': MATHJAX_CDN,
                     },
                    ]


app = Dash(__name__, external_scripts=external_scripts)
app.layout = html.Div(
    children=[
        html.P('''\(Area\)(\(m^2\)) '''),
    ]
)
app.run_server()
Run Code Online (Sandbox Code Playgroud)

一些注意事项:

  • 我一直无法让 Mathjax 在 Markdown 组件中工作。
  • 此解决方案不适用于最新的 Mathjax 版本(也不适用于 2.7.7)。我不确定它可以使用哪个最新版本。

如果您能够解决这两个警告中的任何一个,请告诉我。