如何在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()

这就是结果:

result

如何获得这些结果?

enter image description here

解决方法

对于 plotly,您必须使用 unicode。例如,如果你想打印一个希腊字母 mu 是“\u03bc”。您可以从 here 中获取一些符号,从 here 中获取上标。 m 方格将是“m\U+2072”。

,

你可以试试 Mathjax。以下在我结束时有效(Python 3.9.1,dash==1.19.0,dash-html-components==1.1.2)

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

setInterval("MathJax.Hub.Queue(['Typeset',MathJax.Hub])",1000);

然后回到你的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()

一些注意事项:

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

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...