How to align the figure name to the left ?

Hi,
How can I align the figure name or title to the left side ?
Thanks in advance

6 Kommentare

Matt Fig
Matt Fig am 12 Okt. 2012
Do you mean a plot title? A figure is the window that the plot is in...
aurora
aurora am 12 Okt. 2012
No I mean the figure name not the plot title
Matt Fig
Matt Fig am 12 Okt. 2012
The figure name is already to the left by default, at least it is on my system. What OS are you using?
aurora
aurora am 12 Okt. 2012
because your system language is english or latin but mine is arabic , if there isn't another way to make it left I'll change my system language.
Azzi Abdelmalek
Azzi Abdelmalek am 12 Okt. 2012
aurora, how did you creat this name?
figH=figure();
set(figH,'name','mytitle','NumberTitle','off');

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Matt Fig
Matt Fig am 12 Okt. 2012

0 Stimmen

About the only thing I can think of is to buffer with spaces, but then resizing the figure wouldn't preserve this.
set(gcf,'name',' Myfig')

2 Kommentare

aurora
aurora am 12 Okt. 2012
Bearbeitet: aurora am 12 Okt. 2012
Thank u @Matt Fig it's a good idea, actually it worked fine with me , but if someone else operate my file on his system then it'll appear right to him . I thought I'll find a figure property doing that , I'll better change my system language . thanks
Lucien Robinault
Lucien Robinault am 13 Mär. 2018
It look like you could try to use html to do this as explained here : https://undocumentedmatlab.com/blog/aligning-uicontrol-contents

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (6)

Adam Danz
Adam Danz am 18 Apr. 2023
Bearbeitet: Adam Danz am 21 Nov. 2023
Starting in MATLAB R2020b, control the horizontal alignment of title and subtitle using the axis properties TitleHorizontalAlignment which can be set to center (default), left, or right.
Similarly, control the alignment of axis labels using the LabelHorizontalAlignment which is a property on the axis ruler.
For demos, see this Community Highlight.
(This does not affect the position of the figure name which is the original question by the OP).
tiledlayout(1,3)
ax1 = nexttile();
title('Left')
ax1.TitleHorizontalAlignment = 'left';
box on
axis square
grid on
ax2 = nexttile();
title('Center')
ax2.TitleHorizontalAlignment = 'center';
box on
axis square
grid on
ax3 = nexttile();
title('Right')
ax3.TitleHorizontalAlignment = 'right';
box on
axis square
grid on
There is no way I know for adjusting the title of the figure.
The title of each graph can be adjucted by calculating the limits of the axes. For example:
subplot(3,1,1)
plot([1:pi/10:10], sin(1:pi/10:10))
LimitsX = xlim; LimitsY = ylim;
title('Left', 'HorizontalAlignment', 'left', 'position', [LimitsX(1), LimitsY(2)]);
subplot(3,1,2)
plot([1:pi/10:10], cos(1:pi/10:10))
LimitsX = xlim; LimitsY = ylim;
title('Center (default)');
subplot(3,1,3)
plot([3:pi/10:12], sin(3:pi/10:12))
LimitsX = xlim; LimitsY = ylim;
title('Right', 'HorizontAlalignment', 'right', 'position', [LimitsX(2), LimitsY(2)]);

1 Kommentar

O.Hubert
O.Hubert am 28 Mär. 2023
Bearbeitet: O.Hubert am 28 Mär. 2023
Although this answer does not address the issue of the OP (which was to change the location of the figure name and not the title of the plot, i.e. having "Figure 1" left-aligned), this answer addresses the issue of setting the title plot aligned with the plot area, which may be the reason why users land on this thread.
It is a nice solution which does not require any ad-hoc setting of the location.

Melden Sie sich an, um zu kommentieren.

Azzi Abdelmalek
Azzi Abdelmalek am 12 Okt. 2012

0 Stimmen

title('yourtitle','position',[1 1])

3 Kommentare

Thank you Azzi, but it didn't work .. I want the figure name not the plot title so the property is 'name' and it works with me but the position property doesn't work .
figH=figure();
set(figH,'name','mytitle','NumberTitle','off','position',[1 1] );
the following error : Value must be a 4 element vector
so I added 2 additional vectors to the 'position' property , no error occured but the name alignment still to the right .
Azzi Abdelmalek
Azzi Abdelmalek am 12 Okt. 2012
Aurore why are you changing the location of the name?
aurora
aurora am 12 Okt. 2012
what do you mean ? if you mean why I want to change the name to the left is because I want my project interface figure to be in a good appearance

Melden Sie sich an, um zu kommentieren.

Mohamed Marei
Mohamed Marei am 11 Mai 2013
Bearbeitet: Azzi Abdelmalek am 11 Mai 2013

0 Stimmen

This is long overdue but I figured someone else might heed to do it:
set(title1,'Position',[4.98848 0.24 1.00011]) %%%Default setting
set(title1,'Position',[4.98848 0.34 1.00011]) %%%Shifts upward by 0.1 units
set(title1,'Position',[5.98848 0.34 0.00011]) %%%Shifts to the left by 1 unit

1 Kommentar

Jonathan Broyles
Jonathan Broyles am 21 Apr. 2017
When I tried it this way, but when I pan the plot(change xlim or ylim) the title moves with it, rather than staying stationary as you would expect a title to do. R2017a

Melden Sie sich an, um zu kommentieren.

Roger Parkyn
Roger Parkyn am 14 Sep. 2020

0 Stimmen

Or just use a text label instead.
text(0.02, 1.02, 'Some Title String', 'Units', 'normalized', 'VerticalAlignment','Bottom', 'FontWeight','bold');
Sara
Sara am 23 Mär. 2021

0 Stimmen

You can change the psition based on your need by chnaging the
[0.5 1200 1.1]);
I used this in one of my codes.
title ('a','FontSize',13,'position',[0.5 1200 1.1]);
%
%

Gefragt:

am 12 Okt. 2012

Bearbeitet:

am 21 Nov. 2023

Community Treasure Hunt

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

Start Hunting!

Translated by