fricken
fricken

Reputation: 13

How to change the title position in Octave Plot?

I am plotting something in Octave and it is necessary to have the x axis on the top.

But this way, the title will overlay the axis label. Is there some way to change the position of the title?

I tried to save the title as a graphics handle and change it that way, but it didn't work.

This is a code example for my plot:

x = 0:0.1:2*pi;
y = sin(x);
plot(x,y)
box off
xlabel("x")
ylabel("sin(x)")
set(gca, "XDir", "Reverse")
set(gca, "YDir", "Reverse")
set(gca, "XAxisLocation", "top")
set(gca, "YAxisLocation", "right")
t = title("Sin(x)", "fontsize", 14);

Thanks!

Upvotes: 1

Views: 926

Answers (2)

Tasos Papastylianou
Tasos Papastylianou

Reputation: 22225

I find that whenever you want finer control over different elements of a plot, it's generally worth splitting things into their own axes and then playing around with the axes.

"Playing around" may involve painting things on top of another, as if working with layer on photoshop (e.g. making the top layer transparent, or turning axes visibility 'off'), or, as in this case, stack two axes one above the other in a 'grid', and draw your plot on the bottom axes, and the title on the top. E.g.

ax_plot  = axes( 'position', [0.05,0.05,0.85,0.75 ], 'units', 'normalized' );
ax_title = axes( 'position', [0.05,0.75,0.85,0.95], 'units', 'normalized', 'visible', 'off' );

x = 0:0.1:2*pi;    y = sin(x);
plot(ax_plot, x,y);    box off;    xlabel("x");    ylabel("sin(x)")

set(ax_plot, "XDir"         ,"Reverse" , "YDir"         ,"Reverse")
set(ax_plot, "XAxisLocation","top"     , "YAxisLocation","right"  )

t = title(ax_title, "Sin(x)", "fontsize", 14, 'position', [0.5,0.15] );

enter image description here

Upvotes: 0

Joao_PS
Joao_PS

Reputation: 670

You can to use the text function...

x = -10:0.1:10;
plot(x, sin (x));
xlabel("x");
ylabel("sin (x)");
text(0, 1.08, "My Plot Title",
     "fontsize", 20,
     "color", [50, 230, 120]/255,
     "horizontalalignment", "center");

enter image description here

Upvotes: 2

Related Questions