Repository navigation
Write Image as PDF with Box includes text "Loading [MathJax]/extensions/MathMenu.js" #3469
Description
Activity
What Plotly version are you running? I checked your code with v 5.3.1 (the last one), and no such box is displayed.
I have no idea why that box is displayed. It could be your browser?!!!
It only outputs such box if I am trying to write a PDF, the browser does not have such box. One peculiar issue is that if I am going to write multiple PDF plot in one file, this box will only show in the first PDF image.
This is pretty unfortunate. The cause is that the PDF is being generated by a browser essentially doing a print operation. If this happens while MathJax is still loading, then this box will appear in the output. @jonmmease any thoughts about how to wait a bit longer?
This is pretty unfortunate. The cause is that the PDF is being generated by a browser essentially doing a print operation. If this happens while MathJax is still loading, then this box will appear in the output. @jonmmease any thoughts about how to wait a bit longer?
Just for now, my solution is writing a random plot before my official plot. Of course, I would like to see this problem resolved if possible.
I am having the same issue with plotly 5.4.0 and kaleido 0.2.1.post1. I suspect the issue is with the latest kaleido.
I'm also running into this with:
plotly==5.4.0 plotly-express==0.4.1 kaleido==0.2.1Thanks for the workaround @vincentliuheyang, it works well for me.
Reacted by Chau Pham and davehSame issue with exact same versions as @willfindlay. Is there any workaround?
Thanks to @vincentliuheyang.
@jlehrer1 Try something like this :-) :import plotly.express as px #garbage graph fig = px.scatter(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16]) fig.show() fig.write_image("random.pdf") #actual graph to be replaced fig1 = px.scatter(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16]) fig1.show() fig1.write_image("random.pdf")Reacted by Guilherme Philippi and longhlReacted by longhlthis worked for me:
figure="some_figure.pdf" fig=px.scatter(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16]) fig.write_image(figure, format="pdf") time.sleep(2) fig=make_figure(df,pa) fig.write_image(figure, format="pdf")plotly==5.3.1
Reacted by Adam, Eliott Park, Yang-Xijie, Siddharth Chaini, Yan Tavares, juandering, Thanki Dhruv Ashwinkumar, Jyotirmaya Shivottam and LludionReacted by Maximilian Stahlberg, GuanZhengChen and Yang-XijieReacted by Yang-Xijie and FrancescaThank you! I hadn't realized it was only on the first write when running a script. Interesting.
I am experiencing the same problem as well, do we know what causes the problem?
Reacted by SalvaYes, we know the basic cause, see plotly/Kaleido#122 for details.
Note that if the figure you're rendering doesn't actually use MathJax then you can prevent MathJax from being loaded at all by Kaleido with:
import plotly.io as pio pio.kaleido.scope.mathjax = None
Otherwise, if saving a "throwaway" PDF first helps, I would recommend that: basically save your figure twice.
Reacted by Igor Yusipov, Julia Barbosa, Erdem Tuna, Sandro Valenzuela, Simon Waloschek, Jiacheng Cheng, Zhao Lizhi, Julien Laumonier, Huy Hoang Nguyen, Steven Cheng and 35 moreReacted by ShurayukiHime, Alex Loebel, modest-Hamilton, Philipp Verpoort, Yang-Xijie, Alberto Mario Castillo, Alexander Reisach, Luís Gomes, Zhao Lizhi, longhl and 1 moreReacted by Alberto Mario Castillo and longhlReacted by longhlIs anyone seeing this with Kaleido 0.1 ?
Reacted by Alberto Mario Castillo4 remaining items
Saving a dummy figure before the desired figure doesn't work for me.
What browser does Plotly use by default for PDF saving? Could it be a browser-dependent issue?Saving a dummy figure before the desired figure doesn't work for me.
I think a time delay of a second may be necessary.
Reacted by Jyotirmaya Shivottam and Timo KleinYes, we know the basic cause, see plotly/Kaleido#122 for details.
Note that if the figure you're rendering doesn't actually use MathJax then you can prevent MathJax from being loaded at all by Kaleido with:
import plotly.io as pio pio.kaleido.scope.mathjax = None
Otherwise, if saving a "throwaway" PDF first helps, I would recommend that: basically save your figure twice.
Hi, I tried but it did remove the watermark, but fails to render the math any more. I need the math formula to be shown, what can I do now? @nicolaskruchten
I am having the same issue, I have tried in Windows 10, WSL and Ubuntu...
I am using the most recent versions of the libraries.
An option could be to export to svg and then convert with inkscape (I tried with cairosvg and it does not render the mathjax).
Any updates or alternatives?- changed the title
[-]Write Image as PDF with Box saying "Loading [MathJax]/extensions/MathMenu.js"[/-][+]Write Image as PDF with Box includes text "Loading [MathJax]/extensions/MathMenu.js"[/+]on Aug 12, 2024 - addedbugsomething brokensomething brokenP2considered for next cycleconsidered for next cycleand removedP3backlogbacklog
on Aug 12, 2024 - added a commit that references this issue
on Sep 21, 2024 I am getting this when running in
Rviaplotly::save_image("afile.pdf").Here is the workaround for R:
https://stackoverflow.com/questions/79464233/loading-mathjax-extensions-mathmenu-js-box-visible-in-pdf-when-running-plotl/plotly.py v7.0.0 now bundles MathJax v3 rather than v2 (see #5684), and the message bar is no longer included in v3, so this is resolved.
Note that Kaleido v1.4.0 or greater must be used for generating images, since that is the first version which uses MathJax v3 by default.

Hi,
I am trying to write plot into PDF format, but I cannot get rid of this box saying "Loading [MathJax]/extensions/MathMenu.js", will you be able to tell me how should I fix it?
Here is the code I am using to generate the plot.