Hi @tommyiaq ,
The LaTeX default font is a font from Serif family.
Hence in your Plotly Figure set the font_family="Serif".
Tips to save your figure as a pdf image with 300dpi:
In fig.layout restrict the plot margins to a few pixels; otherwise
you’ll get a large space around the figure in your LaTeX file.
set font_size greater than 12 if you intend to scale the box within the LaTeX file.
save the pdf file of width=wnr_inches*300, height=hnr_inches*300
With this code that generates a Plotly Figure:
import plotly.graph_objects as go
import numpy as np
x_labels= ['LaTeX', 'font', 'versus', 'Serif', 'Plotly']
fig = go.Figure(go.Bar(x= x_labels, y=np.random.randint(4, 11, 5)))
fig.update_layout(width =500, height=250,
font_family="Serif", font_size=14,
margin_l=5, margin_t=5, margin_b=5, margin_r=5)
and with these settings for pio.write_image:
import plotly.io as pio
#save a figure of 300dpi, width 1.5 inches, height 0.75inches
pio.write_image(fig, "test.pdf", width=1.5*300, height=0.75*300)
the LaTeX code:
\documentclass[12pt]{article}
\usepackage{graphicx}
\begin{document}
The centers change iteratively such that to minimize the so called within
cluster sum of squares. More precisely,
in each step of the iterative procedure compute for each point $x_n$
the squared distance to the nearest center of that step.
\begin{figure}[h]
\centerline{\scalebox{0.96}{\includegraphics{test.pdf}}}
\caption{\label{labe1} LaTeX font versus Serif font, set in the Plotly figure}
\end{figure}
To record the index of the nearest
center, one defines the following function:
\end{document}
produces something like the inserted png image, below:
Thank you very much for your time! I did something like this.
import plotly.graph_objects as go
labels = ['not tagged','tagged']
values = [ 30, 70]
fig = go.Figure(data=[go.Pie(values=values,
text = labels,
showlegend=False)]
)
fig.update_layout(font = dict(family="Serif",
color='black',
size=12)
)
fig.write_image("partition.pdf")
But I was wondering if there was a way to give back the text somehow “raw” so that Latex compiles it with his font. Maybe an .eps is better for the scope. I know that you can compile latex math simply by adding r’$…$’ in titles or annotations. Instead for the margin I clip the image directly in Latex.
\documentclass[12pt]{article}
\usepackage{graphicx}
\begin{document}
The centers change iteratively such that to minimize the so called within
cluster sum of squares. More precisely,
in each step of the iterative procedure compute for each point $x_n$
the squared distance to the nearest center of that step.
\begin{figure}[h]
\includegraphics[trim=0 50 0 50,clip,width=\textwidth]{partition.pdf}
\caption{\label{labe1} LaTeX font versus Serif font, set in the Plotly figure}
\end{figure}
\end{document}
Anyway I appreciate the dpi trick and thank you again.
@tommyiaq
Unfortunately your preferred solution is not possible.
I suggested to use font_family="Serif", not LaTeX strings, because the strings are not displayed correctly in all cases, as I pointed out in this answer [Making a subscript and superscript on the same character], a few days ago.
To check it, you can run these lines of code:
text =["$V_0^{0}$", "$V_1^{2}$", "$\\text{Here is: }V_2^{3}$", "$V_3^{4}$"]
fig= go.Figure(go.Bar(x=[2,3,4,5], y=[ 2,3,1, 2.6], text=text, textposition="outside"))
fig.update_layout(width=700, height=450, yaxis_range=[0, 3.25])
```