I am making some plots with matplotlib, and I've come across a problem with the TeX rendering. It seems that the mathtext x-height is is a bit smaller than the normal Bitstream Vera Sans. See the following example:
x = linspace(0, 30, 300);
y = 0.5*rand(300)+20/(numpy.power(x-15, 2)+4);
xlabel(r'$\omega$ (rad$\cdot$Hz)');
ylabel(r'Intensity$^2$');
title(r'Why is $mathtext$ so much smaller than normal text?');
As you can see, it's particularly noticeable with greek letters and numbers. Ideally, I'd be able to define some scaling factor that would just make the math text a bit bigger at each font size. Is there any way to do this simply? I do not want to simply use Computer Modern everywhere. I also do not want to compile a new Tex math font, if that's even possible.
One solution that I would be on board with is using sans-serif fonts for the greek letters and numerals, but for whatever reason, matplotlib ignores formatting on those:
title('Why does $mat\mathsf{plot}lib$ ignore formatting for $\mathsf{2}$ ($\mathsf{two}), $\mathbf{2}$ ($\mathbf{two}) and $\mathsf{\omega}$?')
I assume it's something to do with the nature of how these things are typeset, but is there any way to fix it?
Plot x data points using plot() method. To change the font size of the scale in matplotlib, we can use labelsize in the ticks_params()method. To display the figure, use show() method.
If you want to change the font size of all plots created as well as all components shown in each individual plot including titles, legend, axes-labels and so on, then you need to update the corresponding parameter in rcParams which is a dictionary containing numerous customisable properties.
The first method for changing the font size is to use the set_theme function. It changes the global defaults so the adjustments will be permanent until you change them again. If you plan to use the same font size for all the plots, then this method is a highly practical one.
From the matplotlib docs:
Additionally, you can use
\mathdefault{...}
or its alias\mathregular{...}
to use the font used for regular text outside of mathtext. There are a number of limitations to this approach, most notably that far fewer symbols will be available, but it can be useful to make math expressions blend well with other text in the plot.
Try setting
rcParams['text.usetex'] = True
which will try to use an external LaTeX installation, rather than the built in mathtext renderer. See this wiki (even though it is a tad out-dated) and the discussion on issue #1336
Another option, if you are targeting LaTeX, is to use pstricks.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With