I am making a figure, I want it to use latex interpreter for the axis labels, but I fail at it, maybe because I use the m_map package.
figure
m_proj('lambert','lon',[10 20],'lat',[25 31]);
m_gshhs_c('patch',[.8 .8 .8],'edgecolor','none');
m_grid('linewi',2,'tickdir','out','fontsize',24);
I tried using latex interpreter, but it does nothing.
set(gca, 'TickLabelInterpreter', 'latex');
Any idea what am I missing?

 Akzeptierte Antwort

Madmad
Madmad am 12 Mär. 2026

0 Stimmen

Solution for people having the same issue: After you call m_grid, m_map package reattributes your x and y axis ticks to X°N or Y°E. To remove the ugly default font, switch each to latex.
allText = findobj(gcf, 'Type', 'Text');
for i = 1:length(allText)
txt = allText(i).String;
if ~isempty(txt)
newTxt = regexprep(txt, '(\d+)[°]?([NSEW]?)', '$1$^{\\circ}$$2');
if ~strcmp(txt, newTxt)
allText(i).Interpreter = 'latex';
allText(i).String = newTxt;
end
end
end

Weitere Antworten (1)

Adam Danz
Adam Danz am 29 Mai 2024
Bearbeitet: Adam Danz am 31 Mai 2024

1 Stimme

The map axes you see is a psuedo-axes created from a patch with labels to appear as an axes. The actual axes is not visible. So when you set the TicklabelInterpreter, it has no visible effect.
For confirmation of this, turn on the visibility of the axes,
set(gca,'Visible','on')
I'm not familiar with the 3rd party toolbox these functions appear to be from (link?). See the Mapping Toolbox for alternatives.

1 Kommentar

Madmad
Madmad am 29 Mai 2024
Yes this link. I used to use it because of Matlab lack of toolboxes for maps, I plan to switch to the one you linked!

Melden Sie sich an, um zu kommentieren.

Gefragt:

am 29 Mai 2024

Beantwortet:

am 12 Mär. 2026

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by