I am using parallelplot to generate some plots. However, when I used:
set(gca,'TickLabelInterpreter','latex');
I get:
Unrecognized property TickLabelInterpreter for class ParallelCoordinatesPlot.
Is there any alternative to set the x and y labels of my plot to latex style?
Example:
data = randi(1,10,3);
p = parallelplot(data)
p.CoordinateTickLabels = {'one','two','three'};
set(p,'TickLabelInterpreter','latex');

5 Kommentare

Adam Danz
Adam Danz am 11 Mär. 2023
> Is there any alternative to set the x and y labels of my plot to latex style?
This solution isn't ideal and doesn't direclty address your goal.
If you're using MATLAB R2022a or later, you could use the fontname function to set the font for the entire figure generated by parallelplot, not just the tick labels. You'll also need the font used by latex (see How can I add a new font).
Rub Ron
Rub Ron am 12 Mär. 2023
@Adam Danz thanks, seesm it is the only option. What I am not sure which font resembles the one nomrally a latex interpreter wpuld use, crm8, msam8, cmss10, cmr10?
Adam Danz
Adam Danz am 12 Mär. 2023
Good question. I found this answer that points to cmr12 but I haven't tried it. You can also add fonts to your system that should show up in MATLAB. See the listfonts list after a MATLAB restart.
Rub Ron
Rub Ron am 14 Apr. 2023
@Adam Danz, Hi, I try to use the answer of @LR_eng, converting the parallel plot into a struct variable. It works for the XTickLabel, but then when I try to save the figure it go back to the previous ticks. You suggested here to use:
S.AutoListeners__{1}.Enabled = false
However, even using it, the figure go backs to the previous ticks. May you have any suggestion? Thanks in advance for your time.
Adam Danz
Adam Danz am 14 Apr. 2023
I wrote that solution prior to working at MathWorks. It uses undocumented features that aren't intended to be use-facing. The problem with using undocumented features is that they may not behave as one may expect and there is no guarantee that they will be supported in the future. We will consider adding an intepreter property that can be used with parallelplot.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

LR_eng
LR_eng am 13 Mär. 2023
Bearbeitet: LR_eng am 13 Mär. 2023

1 Stimme

I just had the same problem. Just changing the font did not help me. Apparently, one workaround is to convert the parallelplot object to a struct like it was done here. This worked for me and that way you can also nicely access all the other useful properties. However, it produces a warning that it is not recommended to do it like that.
data = randi(1,10,3);
p = parallelplot(data);
S=struct(p);
Warning: Calling STRUCT on an object prevents the object from hiding its implementation details and should thus be avoided. Use DISP or DISPLAY to see the visible public details of an object. See 'help struct' for more information.
S.Axes.TickLabelInterpreter='latex';
S.Axes.XTickLabel = {'$1^1$','$2\cdot2$','$\sqrt{3}$'};

4 Kommentare

Rub Ron
Rub Ron am 13 Mär. 2023
Hi, I tried and it worked but only for the ticklabels, but the rest dont change the style to latex. For the rest I tried: S.Axes.TextInterpreter='latex'; S.Axes.LegendInterpreter='latex';
Sorry I did not see that you also need the ticks on the y axis. Maybe you can try the following:
S.YRulers(1).TickLabelInterpreter='latex'
S.YRulers(2).TickLabelInterpreter='latex'
S.YRulers(3).TickLabelInterpreter='latex'
Rub Ron
Rub Ron am 14 Mär. 2023
Thanks, but still, what about the x and y labels and the legend
Benjamin Kraus
Benjamin Kraus am 13 Feb. 2024
If you are using this approach, just be aware that it is undocumented and not all aspects are guaranteed to work. I've added some additional context over on this other question on the topic, but one huge caveat is that any changes you make to the axes directly won't survive save/load and are unlikely to work in the Live Editor.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Graphics Object Properties finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 11 Mär. 2023

Kommentiert:

am 13 Feb. 2024

Community Treasure Hunt

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

Start Hunting!

Translated by