在Plotly中,y轴标题中的Latex无法正常工作。

4

你能告诉我为什么以下代码中的 fig.update_yaxes(title=dict(text="$\text{This is a test:} \sqrt{2^4}$") 无法正常工作吗?

import plotly.express as px
fig = px.bar(df, x=["Apples", "Oranges"], y=[10,20], color=["Here", "There"],
    labels=dict(x="Fruit", y="Amount", color="Place")
)

fig.update_yaxes(title=dict(text="$\text{This is a test:} \sqrt{2^4}$", font_size=16)
                )

fig.show()

提供

输入图像描述


1
你使用的是哪个浏览器?我注意到在Firefox中也有同样的问题,但在Chrome中一切似乎都正常。顺便提一下,我注意到你没有在Python字符串中转义反斜杠。我建议使用text=r'$\text{...} \sqrt{...}'或转义反斜杠- text='\\text{...} \\sqrt{...}' - Andrew Slabko
是的,火狐浏览器。Safari没有问题。从未尝试过Chrome(但请参见下面vestland的答案)。 - hans
2个回答

1
为了确切地知道为什么在您这里无法工作,我需要知道以下信息:
  1. 您的plotly版本,以及
  2. 您如何显示您的图表(JupyterLab?),以及
  3. 您在哪里输出您的图表是否有足够的空间来显示标题。
因为在我的端上它可以正常工作:

enter image description here

我正在JupyterLab中运行Plotly '4.14.3'。

与您的代码相同:

import plotly.express as px
fig = px.bar(df, x=["Apples", "Oranges"], y=[10,20], color=["Here", "There"],
    labels=dict(x="Fruit", y="Amount", color="Place")
)

fig.update_yaxes(title=dict(text="$\text{This is a test:} \sqrt{2^4}$", font_size=16)
                )

fig.show()

编辑1: 谷歌浏览器

事实证明,这个问题可能与你正在使用的浏览器有关。我目前正在使用的是微软Edge浏览器。但是,以下是在使用谷歌Chrome浏览器并且没有标题的情况下所使用的相同代码和图像:

enter image description here


非常感谢您的回答。(1) 我刚刚将Plotly从4.14.1更新到4.14.3。不幸的是,问题仍然存在。(2) 我正在使用Jupyter NotebookFirefox浏览器。(3) 任何其他标题,例如fig.update_yaxes(title=dict(text="This is a title", font_size=16))都可以正常显示;但是,如果我使用$,例如fig.update_yaxes(title=dict(text="$This is a title$", font_size=16)),标题就消失了?我不知道为什么? - hans
1
@Hans 非常有趣。我现在用的是Edge浏览器。等一下,我试试其他浏览器... - vestland
1
@Hans 在我的 JupyterLab 和 MS Edge 上运行良好,但在 Google Chrome 上却 无法 运行。不过我不确定原因是什么... - vestland
我刚在Safari浏览器(我用的是一台相当旧的 Mac)上运行了这段代码,使用的是 Jupyter Notebook。喔,太好了,它能正常工作!这似乎是Firefox(或者也可能是Google Chrome)的一个特定问题。我不知道为什么会这样? - hans
@hans,您是否考虑将我的建议标记为被采纳的答案? - vestland

0
安装jupyter-server-mathjax对我来说很有效。

你的回答可以通过提供更多的支持性信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的回答是否正确。你可以在帮助中心找到有关如何撰写好的回答的更多信息。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接