ASKSAGE: Sage Q&A Forum - RSS feedhttps://ask.sagemath.org/questions/Q&A Forum for SageenCopyright Sage, 2010. Some rights reserved under creative commons license.Thu, 25 Nov 2021 10:38:33 +0100LaTeX can't find file for text in plothttps://ask.sagemath.org/question/59948/latex-cant-find-file-for-text-in-plot/Apologies in advance if I've missed something obvious. I'm trying to add LaTeX text to a plot, e.g.
from matplotlib import rc
rc('text', usetex=True)
plot(x^2, legend_label=r'This is $x^2$')
and each time, I get an error message like this:
/opt/sagemath-9.3/local/lib/python3.7/site-packages/sage/repl/rich_output/display_manager.py:596: RichReprWarning: Exception in _rich_repr_ while displaying object: latex was not able to process the following string:
b'lp'
Here is the full report generated by latex:
This is pdfTeX, Version 3.141592653-2.6-1.40.23 (MiKTeX 21.10)
entering extended mode
! I can't find file `/home/sage/.sage/matplotlib-1.5.1/tex.cache/1acea6f6c115d0
ec7a634ed0529287b9.tex'.
<*> ....cache/1acea6f6c115d0ec7a634ed0529287b9.tex
Please type another input file name
! Emergency stop.
<*> ....cache/1acea6f6c115d0ec7a634ed0529287b9.tex
No pages of output.
Transcript written on texput.log.
RichReprWarning,
The file in question (1acea6f6c115d0ec7a634ed0529287b9.tex) does exist, but the path is
`/home/.sage/matplotlib-1.5.1/tex.cache/1acea6f6c115d0
ec7a634ed0529287b9.tex'
not
`/home/sage/.sage/matplotlib-1.5.1/tex.cache/1acea6f6c115d0
ec7a634ed0529287b9.tex'
For whatever it's worth, my home directory is `C:\Users\davis\` and if I copy the relevant file into the folder that LaTeX says it's looking for, and then run the same code, I get the same error message.
I'm on Windows 10 running Sage 9.3 (fresh installation this morning).xdavThu, 25 Nov 2021 10:38:33 +0100https://ask.sagemath.org/question/59948/How show vector or matrix in legend label of plot in latex?https://ask.sagemath.org/question/55304/how-show-vector-or-matrix-in-legend-label-of-plot-in-latex/We can insert latex in legend labels by surrounding the text with '$'. But it doesn't work for a vector (matrix, array), e.g.
\left[\begin{array}{r} 1 \\ 0 \end{array}\right]
Is there any way to display vector in latex in legend label?robSat, 16 Jan 2021 14:32:42 +0100https://ask.sagemath.org/question/55304/Legend attached to curve in plot ("PlotLabels")https://ask.sagemath.org/question/46404/legend-attached-to-curve-in-plot-plotlabels/Hello,
I have a plot with several curves (say, 5) and I need to clearly mark them.
The plot should be grayscale friendly (I am giving curves different shades, but it is not enough), and line style (dotted...) already has a different meaning. I am using a legend, but it goes in a separate box and does not really help a lot.
Since the different curves never cross in a given plot, just attaching the legend label to the curve tail would be great: how can I achieve this? To be clear, I am looking for an equivalent of Mathematica PlotLabels.
The following example gives an idea of the 'most overlapping' case I can be interested in (actually an exaggeration, a real plot would stop at nexp=2.5):
f(x,n) = e^(-1/(n*x))
listexp = srange(0.5, 3+0.1, 0.5)
lenght = float(len(listexp))
xMinPlot = 0.1
p = Graphics()
for i,nexp in enumerate(listexp) :
c = 10^nexp
p += plot_semilogx(f(x,c), (x, xMinPlot, 10), hue=i/lenght)
p.show()
-----
Using [slelievre answer](https://ask.sagemath.org/question/46404/legend-attached-to-curve-in-plot-plotlabels/?answer=46411#post-id-46411) (and imitating the PlotLabels idea, putting gray lines between plot and label), I came up with this:
text_options = {...}
offsets = [0.01, 0.01, 0.01, -0.02, -0.02, 0.02]
xlabel = xMinPlot*0.85
xline = xMinPlot*0.97
for i,nexp in enumerate(listexp) :
c = 10^nexp
yline = f(xMinPlot,c)
p += line(((xline,yline),(xlabel,yline+offsets[i])), color='gray', thickness=0.5)
p += text('$c = 10^{{ {:.1f} }}$'.format(float(nexp)),
(xlabel, yline+offsets[i]), **text_options)
p.show(xmin=5*10^-2, xmax=10)
This approach requires to analyse each plot case by case and playing around to find a solution, but I am afraid there is nothing one can do to partially automate it.
Also, I am not sure that I am doing this the best way, or whether the result could look better/more professional.BaccoMon, 29 Apr 2019 20:10:15 +0200https://ask.sagemath.org/question/46404/